Verificar se uma string contém uma substring em PHP
-
Use a função
strpos()
para verificar se uma string contém uma substring em PHP -
Use a função
preg_match()
para verificar se uma string contém uma substring no PHP
Este artigo irá introduzir diferentes métodos para verificar se uma string contém uma substring em PHP utilizando as funções strpos()
e preg_match()
.
Use a função strpos()
para verificar se uma string contém uma substring em PHP
Utilizaremos a função integrada strpos()
para verificar se uma string contém um substrato. Este comando verifica a ocorrência de uma substring passada; a sintaxe correcta para executar isto é a seguinte:
strpos($originalString, $checkString, $offset);
A função embutida strpos()
tem três parâmetros, que são discutidos abaixo:
Parâmetros | Descrição | |
---|---|---|
$originalString |
obrigatório | É o string que queremos verificar para o substrato. |
$checkString |
obrigatório | É o string que queremos verificar no $checkString . |
$offset |
opcional | É a posição inicial do processo de pesquisa; se a compensação for negativa, o processo de pesquisa começará a partir do fim. |
Esta função retorna a posição do substrato em relação à posição da string original. O programa abaixo mostra como podemos utilizar a função strpos()
para verificar se uma string contém uma substring.
<?php
$mystring = "This is a PHP program.";
if (strpos($mystring, "program.") !== false) {
echo("True");
}
?>
Resultado:
True
Se passarmos o parâmetro $offset
, a função iniciará a pesquisa a partir do local especificado.
<?php
$mystring = "This is a PHP program.";
if (strpos($mystring, "PHP", 13) !== false) {
echo("True");
} else {
echo("False");
}
?>
Resultado:
False
A saída mostrou False
porque a string que pesquisámos foi antes do offset.
Use a função preg_match()
para verificar se uma string contém uma substring no PHP
Em PHP, também podemos utilizar a função preg_match()
para verificar se uma string contém uma palavra específica. Esta função utiliza expressões regulares para corresponder a padrões. A sintaxe correcta para utilizar esta função é a seguinte:
preg_match($pattern, $inputString, $matches, $flag, $offset);
A função preg_match()
aceita cinco parâmetros. O detalhe dos seus parâmetros é o seguinte
Parâmetros | Descrição | |
---|---|---|
$regexPattern |
obrigatório | É o padrão que iremos procurar na string original. |
$string |
obrigatório | É a string que iremos procurar na string original. |
$matches |
opcional | Este parâmetro armazena nele o resultado do processo de correspondência. |
$flag |
opcional | Este parâmetro especifica as bandeiras. Temos duas bandeiras para este parâmetro: PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL . |
$offset |
opcional | Este parâmetro informa sobre a posição inicial do processo de correspondência. |
Utilizaremos o padrão /{$search}/i
para verificar a existência de uma palavra específica. O programa que verifica se uma string contém uma palavra específica é o seguinte:
<?php
$mystring = "This is a php program.";
$search = "a";
if(preg_match("/{$search}/i", $mystring)) {
echo "True"; } else {
echo("False");
}
?>
Resultado:
True