Foros del Web » Programando para Internet » PHP »

Funcion link con erroes...

Estas en el tema de Funcion link con erroes... en el foro de PHP en Foros del Web. Hola tengo la siguiente funcion: Código: <? function hyperlink(&$text) { $text = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/?=&,-])*", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $text); $text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $text); ...
  #1 (permalink)  
Antiguo 27/06/2006, 14:03
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Funcion link con erroes...

Hola tengo la siguiente funcion:
Código:
<? 
function hyperlink(&$text) 
{ 
    
$text = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/?=&,-])*",  "<a href=\"\\0\" target=\"_blank\">\\0</a>", $text); 

$text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $text); 
} 
?>
Código:
<? $line = $row_DetailRS1['texto_detallado'];
hyperlink($line);
echo $line;
?>
Este codigo por medio de esa simple concatenacion lo que hace convertir cualquier texto q contenga www. o http:// en link html.
Problema: el problema se genera cuando el link contiene un caracter como un signo de pregunta [?] lo eh modificado un monton de veces pero esta ves ya nose como hacer para que esto funcione.
Mil gracias.
  #2 (permalink)  
Antiguo 27/06/2006, 14:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 12 años, 10 meses
Puntos: 0
pongo un link de ejemplo como para que vean que tipo de links no toma bien

http://www.asus.com.tw/products4.asp...1=3&l2=13&l3=0
  #3 (permalink)  
Antiguo 27/06/2006, 16:32
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
xq no usas la funcion del phpbb?

Código PHP:
function make_clickable($text

   
$ret ' ' $text
   
$ret preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is""\\1<a href=\"\\2\" target=\"_blank\">\\2</a>"$ret); 
   
$ret preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is""\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>"$ret); 
   
$ret preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i""\\1<a href=\"mailto:\\[email protected]\\3\">\\[email protected]\\3</a>"$ret); 
   
$ret substr($ret1); 
   return(
$ret); 

  #4 (permalink)  
Antiguo 27/06/2006, 21:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 12 años, 10 meses
Puntos: 0
mi funcion la uso de la siguiente manera:
Código:
<? $line = $row_DetailRS1['texto_detallado'];
hyperlink($line);
echo $line;?>
Con la funcion de phpBB como es?
  #5 (permalink)  
Antiguo 28/06/2006, 07:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues exactamente igual!!! .. salvo que la función propuesta devuelve y trabaja con la cadena .. así que donde quieras presentar su valor devuelto .. usas un "echo" .. o la concatenas con lo que necesites (otras variables .. etc).

Código PHP:
$line $row_DetailRS1['texto_detallado'];

echo 
make_clickable($line); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 18:19.