Foros del Web » Programando para Internet » PHP »

Enlaces en una cadena de Texto

Estas en el tema de Enlaces en una cadena de Texto en el foro de PHP en Foros del Web. Hola, quisiera saber si alguien me podría ayudar con una duda que tengo. Supongamos que tengo una cadena cualquiera, en esta cadena hay texto y ...
  #1 (permalink)  
Antiguo 21/08/2012, 18:55
oskarvisual
Invitado
 
Mensajes: n/a
Puntos:
Enlaces en una cadena de Texto

Hola, quisiera saber si alguien me podría ayudar con una duda que tengo.

Supongamos que tengo una cadena cualquiera, en esta cadena hay texto y enlaces a webs y correos.

Lo que quiero hacer con esa cadena si algunos enlaces no tienen el <a href=" agregarcelos y una vez que todos ya tienen el tag de enlace modificarlo algo asi <a href="http://miweb.com?Id=1&Usuario=32223&Url=http://enlace.com">http://enlace.com<a/>

Otra cosa que quisiera hacer es capturar todas los enlaces que hay en la cadena y guardarlos en una base de datos.

Saludos y gracias
  #2 (permalink)  
Antiguo 21/08/2012, 19:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enlaces en una cadena de Texto

1. Necesitas expresiones regulares
2. Si ya tienes algo pero necesitas ayuda comparte
3. Si no tienes nada entonces por favor investiga el tema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/08/2012, 18:49
oskarvisual
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Enlaces en una cadena de Texto

Hola, ya encontre la respuesta a mi primera pregunta.

seria algo asi

Código PHP:
Ver original
  1. $text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="http://miweb.com?Id=1&Usuario=32223&Url=$1">$1</a>', $text);

Falta la segunda, creo estar cerca :D
  #4 (permalink)  
Antiguo 23/08/2012, 19:03
oskarvisual
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Enlaces en una cadena de Texto

Ya esta!!!, este seria el código para insertar todas las urls en una base de datos :D

Código PHP:
Ver original
  1. $data = strip_tags($data,"<a>");
  2. $d = preg_split("/<\/a>/",$data);
  3. foreach ( $d as $k=>$u ){
  4.     if( strpos($u, "<a href=") !== FALSE ){
  5.         $u = preg_replace("/.*<a\s+href=\"/sm","",$u);
  6.         $u = preg_replace("/\".*/","",$u);
  7.         $sql="insert into urls (url) values ('" . $u . "')";
  8. //codigo para ejecutar $sql
  9.     }
  10. }

Etiquetas: enlaces, usuarios, cadenas
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 09:32.