Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/06/2009, 13:58
Kadmon
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Acortar direcciones

Lo que pasa es que no puedo definir la dirección en una variable "$direccion" porque esta se encuentra en medio de un texto, un comentario que escribe alguien.

La función es capaz de encontrar cualquier dirección en cualquier texto y convertirla a enlace, lo que falta es que la acorte también. Por ello pensaba en integrar substr(); en la función tal que así:

Código PHP:
"stripslashes((strlen('\\2')>0?'\\1<a href=\"hxp://\\2\" rel=\"notfollow\">substr(\\2)</a>\\3':'\\0'))"
Pero obviamente está mal porque no funciona.

Por cierto, esta es la función pero debéis de cambiar el "hxp" y "wxw" por su forma correcta:


Código PHP:
function make_links_blank($comentario)
{
return 
preg_replace(
array(
'/(?(?=<a[^>]*>.+<\/a>)
(?:<a[^>]*>.+<\/a>)
|
([^="\']?)((?:hxps?|ftp|bf2|):\/\/[^<> \n\r]+)
)/iex'
,
'/<a([^>]*)target="?[^"\']+"?/i',
'/<a([^>]+)>/i',
'/(^|\s)(wxw.[^<> \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\" rel=\"notfollow\">\\2</a>\\3':'\\0'))",
'<a\\1',
'<a\\1 target="_blank">',
"stripslashes((strlen('\\2')>0?'\\1<a href=\"htp://\\2\" rel=\"notfollow\">\\2</a>\\3':'\\0'))",
"stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
),
$comentario
);
}
$comentariomake_links_blank($comentario); 
Gracias por la respuesta