Foros del Web » Programando para Internet » PHP »

Aporte: Conversión de URLs en enlaces

Estas en el tema de Aporte: Conversión de URLs en enlaces en el foro de PHP en Foros del Web. Hola a todos. Tenía que resolver una necesidad que supongo que tienen muchas otras personas. Es, que los usuarios teclean texto que puede contener URLs, ...
  #1 (permalink)  
Antiguo 24/05/2003, 09:33
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Aporte: Conversión de URLs en enlaces

Hola a todos.

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.


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico

Última edición por lical; 24/05/2003 a las 09:38
  #2 (permalink)  
Antiguo 24/05/2003, 14:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te invito a subirlo a las FAQ's de este foro lical .. así no se perderá el mensaje. (sigue el estilo de las demás y listo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/05/2003, 14:21
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
La verdad me parece una excelente idea, esta muy bien ramificada en cuanto a lo que es enlaces de temas relacionados
, pero dentro de un texto.

http://www.rock.com.ar/bios/0/401.shtml
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:14.