Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2003, 23:36
falejandrox
 
Fecha de Ingreso: julio-2003
Mensajes: 4
Antigüedad: 20 años, 8 meses
Puntos: 0
Expresiones regulares y preg_match_all

Saludos, me acabo de inscribir en el foro, y les estoy envando un problema que tengo desde hace un rato, y que no se como resolver.

He estado modificando una aplicacion que hace busquedas en textos utilizando expresiones regulares en PHP. Vean la siguiente instruccion:

preg_match_all("/<(?:a|area).+?href\s*=\s*(?:\"(.*?)\"|'(.*?)'|(.*? )(?:\s|>))/im",$urlContent,$arr,PREG_SET_ORDER)

La instruccion me devuelve, un arreglo de dos dimensiones con los emparejamientos de la expresion regular con el contenido de '$urlContent', y los links que contienen los hrefs que encuentra. Esta bien que me devuelva los links... por ejemplo:

http://miweb/pagina_inicio/index.html

pero en los hrefs que me devuelve me da cosas de la forma:

<a href="http://miweb/pagina_inicio/index.html"

tal cual como se ve... empieza en el "<a" y termina al final del link. El problema es que necesito cambiar la expresion regular en la llamada a la funcion para que cuando me devuelva el Anchor me lo de completo hasta donde se cierra con </a>, porque nececsito capturar no solo el link real, sino tambien lo que se muestra al usuario para que haga clic ahi. Es decir, el texto mostrado en la pagina para hacer el link. Entonces deberia capturar algo como

<a href="http://miweb/pagina_inicio/index.html">Mi Web</a>

...es decir el Anchor completo.

Muchas gracias y espero que me puedan ayudar. Hasta luego.