Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2011, 01:13
Chappa
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con expresiones regulares al parsear HTML

Hola gente como están? Hace 1 semana que me estoy rompiendo la cabeza con las expresiones regulares en PHP. Para colmo nunca las entendi bien y me cuestan muchísimo...

Para un trabajo de facultad tengo que extraer el NOMBRE y el LINK de cada AUTOR en varias paginas HTML (de un catalogo online de libros):

Código HTML:
<p class="Entrada">

AUTORES:

<a href="URL AL AUTOR1">NOMBRE DEL AUTOR1</a>, 
<a href="URL AL AUTOR2">NOMBRE DEL AUTOR2</a>,
<a href="URL AL AUTOR3">NOMBRE DEL AUTOR3</a>.

</p> 
Lo que tengo que haces es conseguir un Array Multidimensional con los resultados:
Código:
Array
(
    [0] => Array
        (
            [0] => http://www.autor1.com 
            [1] => http://www.autor2.com
            [2] => http://www.autor3.com
        )
 
    [1] => Array
        (
            [0] => NOMBRE AUTOR1
            [1] => NOMBRE AUTOR2
            [2] => NOMBRE AUTOR3
        )
 
)
Para lograr eso utilizaria la función preg_match_all, el unico problema es que no logro dar con el pattern adecuado, por ahora estoy intentando con este pero me tira la URL con las tags y 1 solo nombre:

Código:
$pattern = "#\<a href\=\".*\"\>(.*?)\<\/a\>#";
El pattern tendría que funcionar que empezar a buscar cuando aparezca "<p class="Entrada">AUTORES:" (Ya que hay mas <p class="Entrada"> en la web) y dentro de cada "<a>", las que terminan con , y . (para la ultima entrada)

Si me pudieran dar algún indicio de como corregir el pattern se los agradeceria mucho!

Saludos