Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2011, 17:10
Avatar de NUCKLEAR
NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 4 meses
Puntos: 890
Problema con expresiones regulares y preg_replace_callback

Buenas compañeros, alguien que me de una mano :)

Estoy haciendo una pequeña function que me retorne una url bajo ciertas condiciones.

Código PHP:
Ver original
  1. $text2 = 'dsdas<a href="">fdfs</a> <a href="module/50">primetadddf</a>Immitto vereor  
  2. <a href="/module/1">primeta</a>feugiat macto  <a href="modules/1">livnf</a> ggg
  3. <a href="module/5">Meffffgftuvfo</a> singularis diam importunus sagaciter pertineo verto luptatum.
  4. Paulatim abluo brevitas quidem tego secundum inhibeo.';
  5.  
  6. function url($mat){
  7.  //print_r($mat);
  8.  return 'href="http://estaeslaurlquedevuelve';
  9.  
  10.   }
  11.  
  12. echo preg_replace_callback('`\bhref="(.*?)module/(\d+)(?=[?#"])`', "url", $text2);


Como se habran dado cuenta, la condición es que en la url del texto tenga la palabra "module" y el valor que necesito para procesar la url es el numero que esta después del slash module/50 por ejemplo..

Si hay conicidencia en el primer link me funciona correctamente, pero si por ejemplo la url no contiene "module" me desaparece esa parte (en el ejemplo <a href="">fdfs</a>)

Si alguien que entienda de REGEX me pudiera dar una mano o decirme donde debo buscar, he probado docenas de opciones y no he logrado hacer funcionar ninguna :P

Saludos
__________________
Drupal Argentina