Ir para conteúdo

Arquivado

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

maykon343

Problema com função preg_replace_callback

Recommended Posts

Uso o código abaixo para captar links dos textos, no localhost funciona normal, mas online da um erro. Quando a url capturada no href é a mesma do meu site ele retorna ../../ mas as outras retorna a url completa normalmente, além de trocar apenas a url do meu site nos src das tag img por ../../ também.

 

Código:

 

$baseLink = 'http://meusite.com.br/?action=open_mail&token=123abc&destino=';
$links = array();
$novaMsg = preg_replace_callback('@<a(.*?)href=(\'|")([^\'"]+)\2([^>]*)>@', function($matches) use ($baseLink, &$links){

// Captura todos os links da string
$links[] = $matches[3];

 

// Retorna a string substituindo pelo link personalizado.
return '<a '.$matches[1].' href="'.$baseLink.$matches[3].'" '.$matches[4].'>';

}, $msg);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro que dá online ?

Qual é a versão do php que você tem localhost e online ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Online é 4.3 e local é 4.4 vi q essa função funciona no php 5.3+

Online ele funciona normal com outras URLs mas se tiver a URL do meu site ele troca por ../../

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.