Foros del Web » Programando para Internet » PHP »

Reconocimiento de "http://" en un textarea

Estas en el tema de Reconocimiento de "http://" en un textarea en el foro de PHP en Foros del Web. Hola gente!! Les cuento, estoy haciendo... un sistema de comentarios en php donde cada visitante deja un comentario si? Y lo que quería hacer era ...
  #1 (permalink)  
Antiguo 10/04/2009, 10:27
Avatar de nicolaslt  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 119
Antigüedad: 15 años, 7 meses
Puntos: 5
Pregunta Reconocimiento de "http://" en un textarea

Hola gente!!

Les cuento, estoy haciendo... un sistema de comentarios en php donde cada visitante deja un comentario si?

Y lo que quería hacer era que... cuando el mensaje contenga una pagina web (cuando empiece con h t t p:// o w w w.) que automáticamente se convierta en un link.

Espero que se entienda

saludos :)
  #2 (permalink)  
Antiguo 10/04/2009, 12:08
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 10 meses
Puntos: 36
Respuesta: Reconocimiento de "http://" en un textarea

Código PHP:
function ConvertirCortarurl$matches ) {  
    
$limite 40
    
$matches[0] = (strlen($matches[0]) > $limite) ? substr($matches[0],0,15)."...".substr($matches[0],19-$limite) : $matches[0]; 
    return 
"<a href=\"".(!empty($matches[3]) ? $matches[3] : "http")."://$matches[4]$matches[5]$matches[6]\" target=\"_blank\">$matches[0]</a>";  
}  




function 
ConvertirCortaremail$matches ) { 
    
$limite 40;
    
$matches[0] = (strlen($matches[0]) > $limite) ? substr($matches[0],0,15)."...".substr($matches[0],19-$limite) : $matches[0];
    return 
"<a href=\"mailto:$matches[1]@$matches[2].$matches[3]\">$matches[0]</a>"
}




function 
ponerLinksurl$str ) {
    return 
preg_replace_callback("/((([a-zA-Z]+):\/\/)|(www\.))([\w\.]+)([\#\,\/\~\?\&\=\;\%\-\w+\.]+)/i",'ConvertirCortarurl',$str);
 

}

function 
ponerLinksemail$str ) {
    return 
preg_replace_callback("/([\w\._-]+)@([\w]+)\.([\w\._-]+)/i",'ConvertirCortaremail',$str);

}





$comentario ponerLinksemail(ponerLinksurl($comentario)); 
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #3 (permalink)  
Antiguo 10/04/2009, 16:46
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: Reconocimiento de "http://" en un textarea

esta función lo utilicé como un método estático de una de mis clases, pero ahora te lo dejo como una función.

Código PHP:
function parserLink($url)
    {
        return 
preg_replace(
            array(
'/(?(?=<a[^>]*>.+<\/a>)(?:<a[^>]*>.+<\/a>)|([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+))/iex','/<a([^>]*)
            target="?[^"\']+"?/i'
,'/<a([^>]+)>/i','/(^|\s)(www.[^<> \n\r]+)/iex','/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex'),array("stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">\\2</a>\\3':'\\0'))",'<a\\1','<a\\1 target="_blank" class="enlace01">',"stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\" target=\"_blank\" class=\"enlace01\">\\2</a>\\3':'\\0'))","stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\" class=\"enlace01\">\\0</a>':'\\0'))"),$url);
    } 
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:09.