Detectar una URL y hacerla link en los comentarios

15 de septiembre de 2005 a las 23:37:16

Por fin, arreglé el fallo que tenía en los comentarios con las URL. Los que pasais a menudo por aquí sabéis de qué hablo. Para detectar, cuando un usuario había escrito una URL en los comentarios, utilizo la función eregi_replace. Os dejo el código por si os hace falta alguna vez:

$Pattern = "(http://)?([^[:space:]]+)([[:alnum:]n.,_?/&])";
$Replace = "<a href="http://23">23</a>";
$Texto = eregi_replace($Pattern, $Replace, $Texto);
$Texto = nl2br($Texto);

Explico un poco de qué va esto. La primera línea crea un patrón que busca en toda el comentario del usuario una URL. El patrón tiene tres grupos: la cadena http://, la dirección URL y el final de la dirección.

Una URL puede tener o no la cadena http://. Eso lo conseguimos con (http://)?. A continuación, definimos una serie de caracteres que puede tener una URL. Caracteres alfanuméricos y el punto, la coma, el guión bajo, la interrogación, la barra, el ampersand (&) y lo que me estaba generando el error, un salto de línea. Porque después de una URL, la mayoría de nosotros hacemos un salto de línea. El salto de línea, se detecta con el n.

El resto de las líneas, pues sirven para generar el hipervínculo. Que conste que todo el código no es mio! 😛 Hay un fabuloso libro de Larry Ullman detrás! 🙂

meneameMenea este post | del.icio.usAñadir a del.icio.us

3 Comentarios

Ooh, gracias!

Aprovecho para mandárselo a pibit ( http://pibit.mundurat.net/ ), que está preparando su blog ella misma también. Aunque creo que ahora mismo está offline por unos días.

Se me ha olvidado comentar que $Texto es la cadena que lleva el comentario! 🙂

Pibit, valiente! 🙂

Lo dijo Miguel el 16 de septiembre de 2005 a las 10:32 am

uooo increible! no se me había ocurrido hacer una búsqueda dentro del texto para poder crear los links. me has dado alguna idea que otra con lo de la búsqueda.. ahora solo falta que me pongan en marcha el servidor y a programar ^^

Deja tu comentario

Puedes comentar tu comentario rellenando el formulario o enlazar con tu usuario de Facebook. Si enlazas con tu usuario de Facebook, podrás publicar tu comentario en tu muro! :)




Para poder poner tu avatar (imagen personal que acompaña a cada comentario) usa gravatar


Diseño Gráfico y Desarrollo web, El Tipo Gráfico