HOWTO · PHP
Verificar se uma string contém uma substring em PHP
Este artigo introduz como verificar se uma string contém um substring em PHP.
Nesta página
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