Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2003, 11:29
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Problema al detectar url con preg_replace

El código que uso es este:
Código PHP:
//Muchas cosas
$searches[2] = "/(^|[ \n])([a-zA-Z]+):\/\/([^ ,\"\n]+)/";
$replaces[2] = '\1<a href="\2://\3" target="_blank">\2://\3</a>';
$searches[3] = "/(^|[ \n])www\.([^ ,\"\n]+)/i";
$replaces[3] = '\1<a href="http://www.\2" target="_blank">[url]www.\2[/url]</a>';
// Más cosas, hasta hacer un preg_replace 
Todo funciona bien. El problema está al detectar las url. Si la url acaba con un espacio, no hay problema, pero si acaba en otro caracter o caracteres, p. ej. un ) o ). o ), o " (así una larga lista) entonces o no hace el link o lo hace mal, incluyendo esos caracteres en la url. Asimismo, si antes de http no pongo un espacio, p. ej. (http..., tampoco me pilla el link.
¿Hay forma de detectarlas? En forosdelweb no pasa eso.
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.