Foros del Web » Programando para Internet » PHP »

que reconozca un link

Estas en el tema de que reconozca un link en el foro de PHP en Foros del Web. Hola, cómo se hace para q dentro de un texto, q está en una base de datos y q se quiere mostrar en pantalla, se ...
  #1 (permalink)  
Antiguo 28/08/2010, 09:03
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
que reconozca un link

Hola, cómo se hace para q dentro de un texto, q está en una base de datos y q se quiere mostrar en pantalla, se reconozca q hay un link y se muestre este link?

me explico:

tengo: el buscador más conocido y usado es www.google.es

pues quiero q reconozca que www.google.es es una dirección web y q la muestre con su correspondiente link

salu2
  #2 (permalink)  
Antiguo 28/08/2010, 09:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: que reconozca un link

Con expresiones regulares.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/08/2010, 09:35
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: que reconozca un link

Como ya te han dicho: con expresiones regulares.

Prueba a hacer una función como:
Código PHP:
function hacer_links($texto) {

  
$texto eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',

    
'<a href="\\1">\\1</a>'$texto);

  
$texto eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',

    
'\\1<a href="http://\\2">\\2</a>'$texto);

  
$texto eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',

    
'<a href="mailto:\\1">\\1</a>'$texto);

return 
$texto;

Y ya podrás sacar links del texto que quieras:

Código PHP:
$comentario "Busca lo que quieras en www.google.com";
echo 
hacer_links($comentario); 
suerte
  #4 (permalink)  
Antiguo 29/08/2010, 09:06
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: que reconozca un link

Una pregunta david como quedaria esta funcion si tambien quiero que valide url de sitios con ssl.

https://


gracias
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #5 (permalink)  
Antiguo 29/08/2010, 17:08
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: que reconozca un link

Pues añadiendo una S...

Código PHP:
function hacer_links($texto) {

  
$texto eregi_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',

    
'<a href="\\1">\\1</a>'$texto);

  
$texto eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',

    
'<a href="\\1">\\1</a>'$texto);

  
$texto eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',

    
'\\1<a href="http://\\2">\\2</a>'$texto);

  
$texto eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',

    
'<a href="mailto:\\1">\\1</a>'$texto);

return 
$texto;

  #6 (permalink)  
Antiguo 29/08/2010, 18:21
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: que reconozca un link

http://php.net/manual/es/function.eregi.php

Código:
Warning

Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 30/08/2010, 06:59
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: que reconozca un link

Buen aporte. Será casi lo mismo con preg_replace(), no?
  #8 (permalink)  
Antiguo 30/08/2010, 12:14
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: que reconozca un link

Creo que sí, solo tendrías que agregar los delimitadores, y leí en otro post hace un tiempo que hay uno o dos caracteres que no puedes pasarle a preg_*, pero no sé cual es, no recuerdo :P
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #9 (permalink)  
Antiguo 31/08/2010, 02:46
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: que reconozca un link

entonces... cómo quedaría la función?

por cierto, he descubierto q tiene un pequeño fallo. si metes directamente www.google.es www.facebook.com , es decir q lo primero q hay son www sin nada delante, no te coge el primer link, pero sí el segundo. esto se puede solucionar agregando un espacio en blanco antes de www.google.com

Última edición por humanista; 31/08/2010 a las 04:07

Etiquetas: link
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 13:10.