Problema com a função ereg(i) – PHP 5.3.0
Roberto Roosevelt | 16:11 |
programação
Quem atualizou o PHP para a versão 5.3.0 pode ter encontrado inúmeros erros de funções que foram depreciadas (ou deprecated).
Essas funções são usadas para testar a presença de uma expressão regular dentro de uma string.
Vim falar sobre a função ereg e eregi que são muito usadas (pelo menos por mim) e que precisam ser trocadas por uma versão em Pearl.
Antigamente faríamos assim:
01 <?php
02
03 $palavra = '(casa|carro)';
04 $frase = 'Eu fui pra casa ontem!';
05
06 if (ereg($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
Agora, com o PHP 5.3.0 precisamos usar a função preg_match(), dessa forma:
01 <?php
02
03 $palavra = '/(casa|carro)/';
04 $frase = 'Eu fui pra casa ontem!';
05
06 if (preg_match($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
Repare que entrou uma barra (pra direita) antes e depois da expressão regular.
eregi()
E pra quem usava o eregi, é só adicionar um “i” no final da expressão regular, dessa forma:
01 <?php
02
03 $palavra = '/(casa|carro)/i';
04 $frase = 'Eu fui pra CasA ontem!';
05
06 if (preg_match($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
–
Espero que tenham gostado desse pequeno “atalho”
Essas funções são usadas para testar a presença de uma expressão regular dentro de uma string.
Vim falar sobre a função ereg e eregi que são muito usadas (pelo menos por mim) e que precisam ser trocadas por uma versão em Pearl.
Antigamente faríamos assim:
01 <?php
02
03 $palavra = '(casa|carro)';
04 $frase = 'Eu fui pra casa ontem!';
05
06 if (ereg($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
Agora, com o PHP 5.3.0 precisamos usar a função preg_match(), dessa forma:
01 <?php
02
03 $palavra = '/(casa|carro)/';
04 $frase = 'Eu fui pra casa ontem!';
05
06 if (preg_match($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
Repare que entrou uma barra (pra direita) antes e depois da expressão regular.
eregi()
E pra quem usava o eregi, é só adicionar um “i” no final da expressão regular, dessa forma:
01 <?php
02
03 $palavra = '/(casa|carro)/i';
04 $frase = 'Eu fui pra CasA ontem!';
05
06 if (preg_match($palavra, $frase)) {
07 echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
08 } else {
09 echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
10 }
11
12 ?>
–
Espero que tenham gostado desse pequeno “atalho”
Artigo originalmente publicado em 1 de julho de 2009 por Thiago Belem: Problema com a função ereg(i) – PHP 5.3.0
0 comentários:
Postar um comentário