Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Convertir textos en enlaces en PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Convertir textos en enlaces en PHP

Tenía que resolver una necesidad que supongo que tienen muchas otras personas. Es, que los usuarios teclean texto que puede contener URLs, y estas URLs deben ser convertidas a enlaces. Otras condiciones eran que:

-La URL introducida podía después tener un intro, un tabulador, un espacio, o un paréntesis.
-Si la URL introducida pertenecía a un dominio externo al de la web en cuestión, éste debía abrirse en una nueva ventana, y si era una URL interna debía abrirse en la ventana actual.


Lo he resuelto así:
Código PHP: <?php
   $texto  =  str_replace ( "\r" ,  "" ,  $texto );

$texto  =  preg_replace ( "/(http:\/\/[^(\)|[:space:])]*)\)/" ,
"<a href=\"\\1\" target=\"_blank\">\\1</a>)" ,
$texto );

$texto  =  preg_replace ( "/(http:\/\/[^([:space:]|\"|\<)]*)[[:space:]]/" ,
"<a href=\"\\1\" target=\"_blank\">\\1</a> " ,
$texto );

$texto  =  preg_replace ( "/\<a href=\"(.*zonasiete.*)\" target=\"_blank\"\>/" ,
"<a href=\"\\1\">" ,
$texto );

?> En este caso, el dominio local es zonasiete.org. Espero que a alguien le sea útil. Por alguna extraña razón, no se muestra bien en mi post el code. Aclaraciones:

< ) -- ahí no hay un espacio, esos dos caracteres van seguidos.

\1 -- Todos los unos (1) van precedidos de doble barra invertida, aunque solo se muestra una.



Usuarios que han visto este tema también han visto...

- Proteger Páginas con Contraseña con PHP
- Frase diaria con PHP
- Forzar descargas con PHP
- Selects combinados con Ajax y PHP
- Definición y uso de Clases en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 13-02-2012 a las 07:00:00