Neste artigo você aprenderá a como verificar se string contém palavra específica com PHP, vamos utilizar uma abordagem muito eficaz!
Fala programador(a), beleza? Bora aprender mais sobre strings em PHP!
O PHP é uma das linguagens de programação mais amplamente usadas na web.
Uma tarefa comum que muitos desenvolvedores encontram é verificar se uma string contém uma palavra específica.
Neste artigo, iremos explorar várias maneiras de realizar essa tarefa usando funções PHP nativas.
A Função strpos
A função strpos
é provavelmente a maneira mais comum de verificar se uma string contém outra string em PHP.
Ela retorna a posição da primeira ocorrência de uma substring em uma string. Se a substring não for encontrada, a função retorna false
.
$text = "O PHP é incrível!"; if (strpos($text, 'incrível') !== false) { echo "A palavra 'incrível' foi encontrada na string."; } else { echo "A palavra 'incrível' não foi encontrada na string."; }
Lembre-se de usar o operador de comparação !==
em vez de !=
quando você está verificando o resultado de strpos
.
Isso ocorre porque strpos
retornará 0
se a substring for encontrada no início da string, e 0
é considerado igual a false
em uma comparação !=
, mas não em uma comparação !==
.
Usando expressões regulares com a função preg_match
As expressões regulares oferecem uma maneira mais poderosa e flexível de verificar se uma string contém uma palavra específica.
A função preg_match
do PHP pode ser usada para esse fim.
$text = "PHP é uma linguagem incrível!"; if (preg_match('/\bincrível\b/', $text)) { echo "A palavra 'incrível' foi encontrada na string."; } else { echo "A palavra 'incrível' não foi encontrada na string."; }
Neste exemplo, \b
é uma âncora de palavra que significa “fronteira de palavra”.
Isso garante que você está procurando pela palavra “incrível” e não por uma parte de outra palavra.
Por exemplo, sem as âncoras de palavra, a string “incrivelmente” também corresponderia.
Verificando várias palavras com a função strpbrk
A função strpbrk
retorna a parte de uma string a partir do primeiro caractere que corresponde a qualquer caractere em uma lista de caracteres. Isso é útil quando você deseja verificar se uma string contém qualquer uma das várias palavras.
$text = "O PHP é realmente incrível!"; $words = "incrível ótimo maravilhoso"; if (strpbrk($text, $words) !== false) { echo "Uma das palavras especificadas foi encontrada na string."; } else { echo "Nenhuma das palavras especificadas foi encontrada na string."; }
Comparando desempenho de métodos
É sempre importante considerar o desempenho quando escolhemos um método sobre outro.
No caso de verificar se uma string contém uma palavra específica em PHP, a função strpos
geralmente é mais rápida do que preg_match
para strings curtas porque é uma função simples de pesquisa de string, enquanto preg_match
usa expressões regulares, que são mais complexas e poderosas.
No entanto, para strings muito longas, preg_match
pode ser mais rápido porque é implementado em C e é muito otimizado para expressões regulares.
Além disso, preg_match
pode ser mais rápido se você precisar procurar padrões de string complexos que exigem o poder das expressões regulares.
Aqui está um exemplo de como você pode comparar o desempenho dessas funções:
$text = str_repeat('PHP é incrível! ', 1000); $start = microtime(true); strpos($text, 'incrível'); $end = microtime(true); echo 'strpos tempo: ' . ($end - $start) . ' segundos'; $start = microtime(true); preg_match('/\bincrível\b/', $text); $end = microtime(true); echo 'preg_match tempo: ' . ($end - $start) . ' segundos';
Neste exemplo, estamos medindo o tempo que leva para strpos
e preg_match
procurar a palavra “incrível” em uma string muito longa.
Lembre-se de que esses resultados de desempenho podem variar dependendo do seu ambiente de servidor e da complexidade das strings e padrões que você está procurando.
Em resumo, escolha o método que melhor se adapta às suas necessidades.
Se o desempenho for uma preocupação e você estiver trabalhando com strings muito longas ou padrões de string complexos, pode ser útil fazer alguns testes de desempenho como este para informar sua decisão.
Quer aprender mais sobre programação? Conheça nosso canal no YouTube:
Conclusão
A versatilidade do PHP oferece diferentes maneiras de verificar se uma string contém uma palavra específica, cada uma adequada para situações distintas.
Escolher o método mais apropriado dependerá do contexto de sua aplicação.
O método strpos
é simples e eficiente para verificar se uma sub-string existe dentro de outra string.
Contudo, é preciso estar ciente de suas limitações, como a possibilidade de retornar zero, que pode ser interpretado como FALSE, o que pode levar a resultados inesperados.
A função strstr
é um pouco mais sofisticada e retorna a parte da string a partir da primeira ocorrência da sub-string.
No entanto, se a performance é uma preocupação, e você só precisa saber se a sub-string existe, então strpos
seria uma escolha melhor.
A função preg_match
, por outro lado, oferece a capacidade de procurar padrões de string mais complexos usando expressões regulares.
Embora seja mais pesada em termos de processamento, pode ser extremamente útil quando os métodos simples não são suficientes.
Finalmente, considerar o desempenho ao escolher um método é importante.
Como demonstrado, a função strpos
geralmente é mais rápida para strings curtas, enquanto preg_match
pode ter melhor desempenho com strings longas ou padrões de string complexos.
A escolha do método certo para verificar se uma string contém uma palavra específica em PHP dependerá, em última instância, das suas necessidades específicas e do contexto da sua aplicação.
Como um bom desenvolvedor, é fundamental entender as nuances dessas diferentes abordagens para fazer a escolha mais informada.
Está buscando em evoluir como Programador? Confira o nossos cursos de programação.