468x60 Ads

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”

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