Problemas com ereg(i) - PHP 5.3.0 Print

  • 89

Não adianta ter somente um excelente servidor com um tempo de acesso baixíssimo o que garante produtividade para a sua loja, é preciso também estar sempre com os sistemas, softwares e pessoal atualizado para oferecer o que existe de melhor no mercado.
Estamos gradualmente fazendo a migração de nossos clientes para sistemas que utilizam a versão mais recente do PHP mas algumas incompatibilidades acabam aparecendo como é o caso da função ereg e eregi que nas versões mais recentes do PHP está "Deprecated", ou seja, foi substituída por algo melhor.
Essas funções são usadas para testar a presença de uma expressão regular dentro de uma string.
Aqui e também em nosso departamento de programação (http://www.aminhaloja.com.br/) usamos bastante a função ereg e eregi assim como nas lojas Oscommerce e na programação em geral mas agora será preciso trocar esta função por uma versão em Pearl.


Antigamente faríamos assim:
    $palavra = '(casa|carro)';
    $frase = 'Eu fui pra casa ontem!';
     
    if (ereg($palavra, $frase)) {
        echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
    } else {
        echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
    }     
?>

Agora, com o PHP 5.3.0 precisamos usar a função preg_match(), dessa forma:
    $palavra = '/(casa|carro)/';
    $frase = 'Eu fui pra casa ontem!';
     
    if (preg_match($palavra, $frase)) {
        echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
    } else {
        echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
    }     
?>

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:

    $palavra = '/(casa|carro)/i';
    $frase = 'Eu fui pra CasA ontem!';
     
    if (preg_match($palavra, $frase)) {
        echo "A palavra 'casa' ou 'carro' foi encontrada na frase";
    } else {
        echo "A palavra 'casa' ou 'carro' não foi encontrada na frase";
    }     
?>


Was this answer helpful?

« Back