Foros del Web » Programando para Internet » PHP »

Limpiar links en una cadena

Estas en el tema de Limpiar links en una cadena en el foro de PHP en Foros del Web. Buenas a todos, necesito ayuda con una regExp para borrar links de un texto siempre y cuando no sean del dominio propio, les agradesco la ...
  #1 (permalink)  
Antiguo 16/12/2009, 13:45
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 20 años, 4 meses
Puntos: 1
Pregunta Limpiar links en una cadena

Buenas a todos, necesito ayuda con una regExp para borrar links de un texto siempre y cuando no sean del dominio propio, les agradesco la ayuda.
  #2 (permalink)  
Antiguo 16/12/2009, 13:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Limpiar links en una cadena

links en que sentido??

por favor, lee el siguiente tema:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/

y escribe por ti mismo la expresión, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/12/2009, 14:08
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Limpiar links en una cadena

Cita:
Iniciado por pateketrueke Ver Mensaje
links en que sentido??

por favor, lee el siguiente tema:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/

y escribe por ti mismo la expresión, suerte!!
Hola pateketrueke muchas gracias por contestar, gracias por el tema ahorita lo estoy viendo las regexp no las utiliso mucho mas para lo necesario nunca he hecho comprobaciones muy complicadas realmente lo que necesito es limpiar un texto que contenga links y unicamente dejar los links que sean del dominio propio del sitio

ejemplo:

$texto = 'este texto contiene dos enlaces <a href="http://otrositio.com" >otro sitio</a> <a href="http://misitio.com" >mi sitio</a> ';

lo que necesito hacer es eliminar el enlace de otrositio.com y dejar solo el de misitio.com

tengo una expreg que convierte texto plano a enlaces pero quiero una que los borre pero deje el enlace con el dominio de mi sitio intacto


esta es la regexp para convertir texto plano a enlace y luego he tratado de eliminar el enlace pero me da problemas talves me puedes ayudar te lo agresco mucho.

Código PHP:
$reg"@\b(https?://)?(([0-9a-zA-Z_!~*'().&=+$%-]+:)?[0-9a-zA-Z_!~*'().&=+$%-]+\@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+\.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\.[a-zA-Z]{2,6})(:[0-9]{1,4})?((/[0-9a-zA-Z_!~*'().;?:\@&=+$,%#-]+)*/?)@"
esta convierte el texto plano a link por ejemplo www.misitio.com lo convierte a </a> <a href="http://misitio.com" >mi sitio</a> ';
  #4 (permalink)  
Antiguo 16/12/2009, 15:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Limpiar links en una cadena

lo que debes es diseñar una expresión que captura los enlaces ya escritos en HTML...
Cita:
/<a([^>]*)>(.*)<\/a>/is
filtras los atributos con preg_replace_callback() y vas verificando dichos enlaces...
Código PHP:
if ( ! strpos($matches[1], 'http://paginaweb.com')) // ... 
disculpa si soy muy técnico, pero en el enlace y el manual de PHP hay bastante información al respecto...

suerte!!
__________________
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 21:39.