Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mark Gerald

[Resolvido] converter eregi_replace para preg_replace

Recommended Posts

Olá pessoas

 

Vi muitos tópicos mostrando exemplos simples de como converter funções eregi_replace para preg_replace. Porém nada se encaixou no meu problema.

 

Fiz a instalação de um novo servidor de intranet para um cliente, onde ele migrou uma intranet feita em php há algum tempo por outro desenvolvedor. Eis que agora com PHP5.3 e função abaixo, não funciona e é necessário migra-la para preg_replace. Alguem pode tentar me ajudar nisto? vi manual do php, posts de blog e mesmo aqui, os exemplos são muito simples, e não tão complexos como o código que estou com problema:

 

 

function date_format($pattern,$data){

$sp = split("[- :]",$data);

if(($sp[0]=="0000")||($sp[0]==""))
	$sp[0] = "----";
if(($sp[1]=="00")||($sp[1]==""))
	$sp[1] = "--";
if(($sp[2]=="00")||($sp[2]==""))
	$sp[2] = "--";

$pattern = eregi_replace("ano",$sp[0],$pattern);
$pattern = eregi_replace("mes",$sp[1],$pattern);
$pattern = eregi_replace("dia",$sp[2],$pattern);
$pattern = eregi_replace("hora|horas",$sp[3],$pattern);
$pattern = eregi_replace("minuto|minutos",$sp[4],$pattern);
$pattern = eregi_replace("segundo|segundos",$sp[5],$pattern);

return $pattern;

}

 

 

Se alguem puder ajudar, fico muito grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se puder nos explicar melhor e dar alguns exemplos do funcionamento desta função, poderá nos ajudar. :)

 

Mas literalmente substituindo as funções de replace, ficaria assim:

 

$pattern = preg_replace("/ano/i", $sp[0], $pattern);
$pattern = preg_replace("/mes/i", $sp[1], $pattern);
$pattern = preg_replace("/dia/i", $sp[2], $pattern);
$pattern = preg_replace("/(hora|horas)/i", $sp[3], $pattern);
$pattern = preg_replace("/(minuto|minutos)/i", $sp[4], $pattern);
$pattern = preg_replace("/(segundo|segundos)/i", $sp[5], $pattern);

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, eu tinha pesquisado que era isso mesmo tinha que colocar a / e depois /i.

 

Quando fiz, não funcionou, e estava dizendo que a função date_format estava sendo declarada 2 vezes.

 

Pesquisei, e vi que esse nome de função, é reservado nas versões mais novas do php, como a 5.3. Mudei o nome da função, e suas chamados nos arquivos e ficou tudo sussa!

 

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.