Verificar se uma string contém uma substring em PHP

Minahil Noor 30 janeiro 2023
  1. Use a função strpos() para verificar se uma string contém uma substring em PHP
  2. Use a função preg_match() para verificar se uma string contém uma substring no PHP
Verificar se uma string contém uma substring em 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

Artigo relacionado - PHP String