Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Glaera, seguinte...
Atualizei o meu XAMPP para versão v3.1.0.3.1.0 e logo a versão do PHP para 5.4.7.
Até aí tudo bem, porém notei que esta versão do PHP, exige uns códigos mais corretos, por assim dizer..
Então eu tenho uma classe, que trata uma string ára retirar algus tipos de caracters etc.
E ao rodar ela nesta versão do PHP, ocorreu a seguinte mensagem:
Deprecated: Function eregi_replace() is deprecated in C:\xampp\htdocs\estudando_php\Manipulando-htaccess\UrlManage.class.php on line 24
E esta mesma mensagem para todas as linhas que estou utilizando a eregi_replace..
Linha 24:
$String = eregi_replace("[[:space:]]", $Separador, $String);
Linha 24:
$String = eregi_replace("[çÇ]", "c", $String);
E assim por diante.. Em todas as linhas que é utlizado a eregi_replace. Vou colar todo o código da classe ok...:
<?php
class UrlManage{
/*
* Funcção que retorna dados do menu
*/
public static function getUrlMenu($nome_menu, $categoria, $sub_categoria, $nome_pagina) {
if (UrlManage::HabilitadoModRewrite()) {
return "" . UrlManage::convertStringByUrlString($nome_menu) . "/" . UrlManage::convertStringByUrlString($categoria) . "/$sub_categoria/" . UrlManage::convertStringByUrlString($nome_pagina) . ".html";
} else {
return "reload.php?load=$nome_menu";
}
}
/*
* Funcção que trata os caracters da descrição do URL
*/
private static function convertStringByUrlString($String) {
$Separador = "-";
$String = trim($String); /* Removendo espaços do inicio e do fim da string */
$String = strtolower($String); /* Convertendo a string para minúsculas */
$String = strip_tags($String); /* Retirando as tags HTML e PHP da string */
$String = eregi_replace("[[:space:]]", $Separador, $String); /* Substituindo todos os espaços por $Separador */
$String = eregi_replace("[çÇ]", "c", $String); /* Substituindo caracteres especiais pela letra respectiva */
$String = eregi_replace("[áÁäÄàÀãÃâÂ]", "a", $String);
$String = eregi_replace("[éÉëËèÈêÊ]", "e", $String);
$String = eregi_replace("[íÍïÏìÌîÎ]", "i", $String);
$String = eregi_replace("[óÓöÖòÒõÕôÔ]", "o", $String);
$String = eregi_replace("[úÚüÜùÙûÛ]", "u", $String);
$String = eregi_replace("(\()|(\))", $Separador, $String); /* Substituindo outros caracteres por "$Separador" */
$String = eregi_replace("(\/)|(\\\)", $Separador, $String);
$String = eregi_replace("(\[)|(\])", $Separador, $String);
$String = eregi_replace("[@#\$%&\*\+=\|º]", $Separador, $String);
$String = eregi_replace("[;:'\"<>,\.?!_-]", $Separador, $String);
$String = eregi_replace("[“”]", $Separador, $String);
$String = eregi_replace("(ª)+", $Separador, $String);
$String = eregi_replace("[`´~^°]", $Separador, $String);
$String = eregi_replace("($Separador)+", $Separador, $String); /* Removendo o excesso de "$Separador" por apenas um */
$String = substr($String, 0, 100); /* Quebrando a string para um tamanho pré-definido */
$String = eregi_replace("(^($Separador)+)|(($Separador)+$)", "", $String); /* Removendo o "$Separador" do inicio e fim da string */
return $String;
}
private static function HabilitadoModRewrite() {
return true;
}
}
?>
Só que depois dos erros, ele printa o menu corretamente.. Doidera né? Alguma sugestão para corrigir isto?
Shini, valew pela dica mano...
Mas agora voltou com outro erro:
Warning: preg_replace(): Compilation failed: POSIX named classes are supported only within a class at offset 0 in C:\xampp\htdocs\estudando_php\Manipulando-htaccess\UrlManage.class.php on line 24
Warning: preg_replace(): Unknown modifier '|' in C:\xampp\htdocs\estudando_php\Manipulando-htaccess\UrlManage.class.php on line 33
**Linha 24:** $String = preg_replace("[[:space:]]", $Separador, $String);
**Linha 33:** $String = preg_replace("(\()|(\))", $Separador, $String);
Este mesmo erro para todas as linhas que utilizei o preg_replace
vc esta usando os delimitadores?
assim:
/[[:space:]]/
Shini, deu certo irmão!!!Obrigado! :coolio:
eh nois.
troque por preg_replace http://php.net/manual/pt_BR/function.preg-replace.php
eregi_replace tornou-se obsoleta do 5.3 para frente.