Tema: HTMLArea
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/10/2007, 02:24
trhipahx
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: HTMLArea

Tambien he encontrado esto:
¿alguien me puede ayudar a compilarlo?
Gracias

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.