Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2016, 10:24
edward18_1
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Problema con expresión regular

Hola mi gente!!

tengo esta expresion regular, que actualmente detecta alguna url y la convierte en link! dentro de una cadena de texto! pero necesito saber como la modifico para que a parte de convertir en link las url, el texto normal que no convierte en link. Tambien lo convierta en link pero a una direccion especifica.
Es para los tags de mi web. Para que al hacer click si es un link externo, vaya a otra pagina. Si es un texto normal pues sea convertido en link interno de la pagina.
Gracias.

Aca el codigo.

Código PHP:
    function replace_urls($string){
    
$host "([a-z\d][-a-z\d]*[a-z\d]\.)+[a-z][-a-z\d]*[a-z]";
    
$port "(:\d{1,})?";
    
$path "(\/[^?<>\#\"\s]+)?";
    
$query "(\?[^<>\#\"\s]+)?";
    return 
preg_replace("#((ht|f)tps?:\/\/{$host}{$port}{$path}{$query})#i""<a target='_blank' href='$1'>$1</a>"$string);

__________________
Para el logro del triunfo siempre ha sido indispensable pasar por la senda de los sacrificios. Simon Bolivar