Foros del Web » Programando para Internet » PHP »

convertir texto a enlace

Estas en el tema de convertir texto a enlace en el foro de PHP en Foros del Web. Hola de nuevo, vereis, tengo el siguiente problema, en un campo de texto, el usuario puede incluir una direccion web, lo que queria era saber ...
  #1 (permalink)  
Antiguo 22/06/2006, 03:01
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
convertir texto a enlace

Hola de nuevo, vereis, tengo el siguiente problema, en un campo de texto, el usuario puede incluir una direccion web, lo que queria era saber como al mostrar ese campo desde la base de datos, la direccion, en lugar de aparecer como texto(que es como se ha incluido) pueda aparecer como enlace.

Gracias.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #2 (permalink)  
Antiguo 22/06/2006, 03:11
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
<a href="http://<?php echo $texto_de_DB; ?>"><?php echo $texto_de_DB; ?></a>

vamosss!! si no entendi mal :P

porq apostaria q si :D
  #3 (permalink)  
Antiguo 22/06/2006, 03:18
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por suntus
<a href="http://<?php echo $texto_de_DB; ?>"><?php echo $texto_de_DB; ?></a>

vamosss!! si no entendi mal :P

porq apostaria q si :D
Casi, es que fui yo el que se explico mal, el texto es eso un texto, tipo:
bla,bla,bla,..., lo que sucede es que por medio del texto puede ponerse una direccion:

bla, bla, www.forosdelweb.com, bla,...
lo que me interesa es convertir esa direccion de tal modo que manteniendo el texto como texto, esa direccion la ponga como enlace.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #4 (permalink)  
Antiguo 22/06/2006, 03:27
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
jejejej.. ya decia yo que no podia ser tan facil la pregunta.

soy nuevo en php, y no puedo ayudarte muy bien con la una forma que conozco. Seria mediante cadenas y replace y cosas de esas.. seguro q alguno t ayuda.

saludos.
  #5 (permalink)  
Antiguo 22/06/2006, 04:04
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
prueba con esta funcion:

http://es.php.net/manual/es/function.substr-replace.php
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 26/06/2006, 02:57
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por Azrael666
Lo siento, pero no me vale, a ver me explico, el problema es que yo no se en que posicion aparecera el enlace, lo que me interesa es que pase como en estos foros, que cuando pones la direccion aparezca como un enlace, y esa funcion depende del nº de caracteres.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #7 (permalink)  
Antiguo 26/06/2006, 03:49
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 10 meses
Puntos: 1
En esta web sale con enlace porque el usuario cuando escribe el post el mismo indica que es un enlace. Prueba a que el usuario que escriba si quiere que salga como enlace ponga algún tipo de etiqueta delante y detras del texto y asi puedes identificar que parte del texto es un enlace, sino prueba a usar expresiones regulares para encontrar el texto que tiene que ser enlace.
  #8 (permalink)  
Antiguo 26/06/2006, 04:09
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por zekenet
En esta web sale con enlace porque el usuario cuando escribe el post el mismo indica que es un enlace. Prueba a que el usuario que escriba si quiere que salga como enlace ponga algún tipo de etiqueta delante y detras del texto y asi puedes identificar que parte del texto es un enlace, sino prueba a usar expresiones regulares para encontrar el texto que tiene que ser enlace.
Ok, probare con expresiones regulares, respecto a lo de que el usuario lo indica, no necesariamente, si cuando escribes un mensaje miras en la parte de abajo, en opciones adicionales, veras que hay una opcion que es "convertir urls automaticamente en enlaces", si lo tienes marado, en cuanto escribes un enlace tipo www.loquesea.com te lo pone como enlace, sin tener que poner la etiqueta, respecto a las expresiones regulares, estas me plantean un problema, y es que hay montones de extensiones(.com,.net,.es,.ar,...)pero bueno, a ver como lo solvento.

Gracias.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #9 (permalink)  
Antiguo 26/06/2006, 04:49
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola,

mira en esta página donde te explican el uso de las expresiones regulares y ponen el ejemplo que resuelve tu problema http://www.ignside.net/man/php/regex.2.php
__________________
http://www.nosoynadie.net/
  #10 (permalink)  
Antiguo 26/06/2006, 04:52
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Ok, nosoynadie, revisare el enlace y os cuento.

Gracias a todos por la ayuda.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #11 (permalink)  
Antiguo 26/06/2006, 05:26
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 10 meses
Puntos: 1
A ok, entonces tendras que hacerlo con expresiones regulares
  #12 (permalink)  
Antiguo 26/06/2006, 05:28
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Resuelto, al final tuve que acudir a www.php.net (a partir de la informacion de nosoynadie), pero se resolvio, al final el codigo(por si alguien lo quiere) es:
Código PHP:
echo ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)""\\1<a href=\"http://\\2\" target='_new'>\\2</a>"$registro['texto']); 
Saludos, y gracias a todos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #13 (permalink)  
Antiguo 10/08/2006, 05:12
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
Cita:
Iniciado por Bytevamp Ver Mensaje
Resuelto, al final tuve que acudir a www.php.net (a partir de la informacion de nosoynadie), pero se resolvio, al final el codigo(por si alguien lo quiere) es:
Código PHP:
echo ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)""\\1<a href=\"http://\\2\" target='_new'>\\2</a>"$registro['texto']); 
Saludos, y gracias a todos.
y esta misma función servira para email´s, osea, con el @? como seria la linea de programación?
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #14 (permalink)  
Antiguo 10/08/2006, 18:52
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
aqui consegui una funcion en la web de www.php.net y se las coloco para que la usen los que quieran o esten interesado.... funciona tanto para http, ftp y direcciones de correo:

//////////////// LA FUNCION ES ESTA /////////////////

function make_links_blank($noticia)
{
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">',
"stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\">\\2</a>\\3':'\\0'))",
"stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
),
$noticia
);
}

/////////////////////// Asi es como la deben usar /////////////////////

make_links_blank($noticia)

espero que les sea de utilidad porque ami me funciono!!!!

Saludos!
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #15 (permalink)  
Antiguo 11/08/2006, 03:08
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Personalemnte le agregaría a los enlaces la etiqueta nofollow.

Así evito que los robots "piensen" que yo webmaster estoy a favor de las URL's que pongan los usuarios que pudieran ser pura basura (y perjudicarte).

Ejemplo:
Código PHP:
<a href="http://www.sitio.net/" target="_new" rel="nofollow" >Texto clave</a
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #16 (permalink)  
Antiguo 16/01/2007, 15:24
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: convertir texto a enlace

Cita:
Iniciado por nosoynadie Ver Mensaje
Hola,

mira en esta página donde te explican el uso de las expresiones regulares y ponen el ejemplo que resuelve tu problema http://www.ignside.net/man/php/regex.2.php
Me funciono de pinga!.-

Saludos,.
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #17 (permalink)  
Antiguo 30/01/2007, 17:50
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
Re: convertir texto a enlace

perfecto, me sirvio de mucho, gracias
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:00.