Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Deprecated: Function ereg() is deprecated


Crash

Pergunta

Salve Comunidade !

Estou enfrentando uma dificuldade por causa da atualização da versão do PHP para a mais recente.

Tenho uma loja que etou montando agora e toda vez que tento abrir a loja ou tento acessar o Admin da mesma recebo a mensagem de Erro Deprecated: Function ereg() is deprecated onde esta dando o tal erro pelo que descobri é nesta faixa do script do admin;

for ($i=0, $n=sizeof($this->browser_languages); $i<$n; $i++) { 
reset($this->languages); 
while (list($key, $value) = each($this->languages)) { 
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i]) && isset($this->catalog_languages[$key])) { 
$this->language = $this->catalog_languages[$key]; 
break 2; 
} 
} 
} 
} 
}
Mas como não sei programar peso a ajuda de alguém para resolver isto. Encontrei o seguinte artigo na net após muita pesquisa:
Aprenda a converter ereg e eregi em sua versão Perl (usando o preg_match) e evite erros de função depreciada no PHP 5.3.0 ----------------------------------------------------------------------------- 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:
<?php

$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:
<?php

$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:
<?php

$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";
}

?>

Créditos:

Autor: Thiago Belem

Site:http://blog.thiagobelem.net/php/2009/07/01...-php-5-3-0-557/

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
$n = count($this->browser_languages);
reset($this->languages);
for( $i = 0; $i < $n; $i++ )
{    
    if ( preg_match('/^('.$this->languages[$i].')(;q=[0-9]\\.[0-9])?$/i', $this->browser_languages[$i] )) 
    {
        $this->language = $this->catalog_languages[$key];
        break;
    }    
}

Editado por ursolouco
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...