Foros del Web » Programando para Internet » PHP »

Ayuda: Autoconvertir URL de Texto a Enlace

Estas en el tema de Ayuda: Autoconvertir URL de Texto a Enlace en el foro de PHP en Foros del Web. Bueno aqui les dejo un codigo que hace que conviertan una url de un texto a enlace. lo encontre tratando de conseguir algo asi peor ...
  #1 (permalink)  
Antiguo 30/04/2009, 18:11
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
Pregunta Ayuda: Autoconvertir URL de Texto a Enlace

Bueno aqui les dejo un codigo que hace que conviertan una url de un texto a enlace. lo encontre tratando de conseguir algo asi peor eh tenido problemas para adaptarlo a mis necesidades, asi que acudo aqi a los grandes para que me puedan ayudar
Bueno estaba intentando aplicarlo a mi web y funciona, pero hay algo que deseo, que una vez detectada la url y convertida a enlace,al momento de mostrarla tambien la acorte.
Se que se puede hacer con "substr", bueno mi codigo es este espero me ayuden.
Lo que intente es hace esto:
Código PHP:
<?php 
$txt 
='<b>h t t p : / / rs152.rapidshare.com/files/117580024/WXPSP3UEByOGARJ.part8.rar</b>';
 
$txt preg_replace'/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/i''<a href="\0" target="_blank">'.substr('\0'037).'</a>'$txt);
echo 
$txt;  ?>
Bueno tambien vi que el "preg_replace" tiene una propiedad mas que se llama "init limit" supuse que era el limite que podia mostar ene ste caso el enlace que loa corte al momento de mostrarlo, pero bueno no me funciono, en fin espero me puedan ayudar, y por ultimo que tambien valide que no coja las etiquetas que esten cerca a los enlaces por que si muestro el codigo que puse arriba obtendre un enlace como este:
"h t t p : / / rs152.rapidshare.com/files/117580024/WXPSP3UEByOGARJ.part8.rar</b>"
y eso no es lo que se desea, Por ultima vez espeor me ayuden, Gracias de Antemano.

NOTA: Lo coloque separado por el antiSpam
  #2 (permalink)  
Antiguo 30/04/2009, 23:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Respuesta: Ayuda: Autoconvertir URL de Texto a Enlace

Hola:

Para que substr() se evalúe como código PHP, tienes que utilizar el modificador "e" en el patrón. Además, el segundo parámetro debe ser una cadena (delimitada por comillas y utilizando caracteres de escape donde sea necesario).


Tu código debería quedar algo así:
Código php:
Ver original
  1. $texto_original ='Algún texto que contenga enlaces como http://rs152.rapidshare.com/files/117580024/WXPSP3UEByOGARJ.part8.rar que debería aparecer reemplazado.';
  2. $texto_nuevo = preg_replace('/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/e', "'<a href=\"\\0\" target=\"_blank\">'.substr('\\0', 0, 8).'</a>'", $texto_original);
  3. echo $texto_nuevo;

Saludos,
  #3 (permalink)  
Antiguo 01/05/2009, 10:46
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
Pregunta Respuesta: Ayuda: Autoconvertir URL de Texto a Enlace

muchas gracias jpinedo me sirvio y ya esta como yo deseo, ahora hay otro pequeño problema es que si una etiqueta como "<br>" o "<p>" entonces tambien toma eso como si fuera parte del enlace, bueno eso ya lo habia puesto en el post inicial donde explico los problemas, entonces como aria o que combinaciones de carcateres que eviten coger esos caracteres. porfa ayuda jpinedo, o alguien mas que pueda.
Porfavor.Gracias de Antemano.
  #4 (permalink)  
Antiguo 01/05/2009, 10:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda: Autoconvertir URL de Texto a Enlace

DjMiki... es algo complejo, son expresiones regulares

te sugiero comiences por leer lo siguiente:

Expresiones PCRE
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 14:13.