Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2010, 18:01
Avatar de America|UNK
America|UNK
 
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Expresion regular condicional

Hola, estoy utilizando una función para reemplazar links por el famoso bbcode url.

Ejem: http://www.google.com reemplaza por [url=http://www.google.com]http://www.google.com[/url]


Código PHP:
function urlParseBB($s){ // function callback
    
return "[url=$s[1]]" $s[1] ."[/url]";
}
function 
linksToBBcode($s){
    return 
preg_replace_callback('/(http:\/\/[\w\/*\?*\&*\=*\.*]+)/i','urlParseBB',$s);

Ejemplo:

Código PHP:
$text '
Link normal: http://www.google.com
Link ya parseado: [url=http://www.forosdelweb.com]http://www.forosdelweb.com[/url]
'
;

echo 
linksToBBcode($text); 
Con las funciones todo bien, pero la expresión (http:\/\/[\w\/*\?*\&*\=*\.*]+)/i es la que uso ahora y no es la adecuada, me gustaría que ignorara los links que ya estén parseados como lo esta "forosdelweb.com", prácticamente me interesa saber que hace falta en la expresión para que no parsee los links que ya tienen el tag [url].

Un saludo y Gracias .
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */