Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera o que eu estou tentando fazer e preciso é o seguinte:
Preciso procurar uma palavra dentro de uma string (case insensitive) e retornar a palavra (case sensitive) se encontrada.
Exe:
"O rato roeu a RoUpA do rei de roma",procurar por roma e retornar como estava na string original RoUpA.
estou tentando assim mas não consegui retornar a palavra:
$var= stristr("O rato roeu a RoUpA do rei de RoMa","roupa");
echo $var;
Assim está retornando "RoUpA do rei de roma" e eu quero que retorne apenas a palavra encontrada "RoUpA".
O que tenho que modificar para que a stristr() retorne apenas a palavra encontrada? Existem alguma outro função ou método nativo do PHP? Eu andei dando uma olhada no manual e testando algumas funções mas não encontrei nada...
Aguardo a ajuda e vcs valeu!
o Regex!
É fato que expressão regular é legal, mas totalmente desnecessária nessa situação.
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif stripos()
<?php
$haystack = 'O rato roeu a rOupa do rei de Roma.';
$needle = 'roupa';
var_dump( substr( $haystack , stripos( $haystack , $needle ) , strlen( $needle ) ) );
Saída:
string(5) "rOupa"
Adoro este tipo de pergunta pois entra na questão de usar uma função maravilhosa de muitas linguagens de programação: o Regex! Ela funciona como uma máscara, onde, se for encaixada, retorna uma Array de resultados:
A máscara é /roupa/i, pois estou procurando a palavra roupa e o i refere-se à "insensitive", que procura letras minúsculas e maiúsculas.Espero ter ajudado, ah... e estude um pouco de Regex (preg_match() no PHP). Até mais!