Preg_match_all

  • Autor Autor xmatias
  • Fecha de inicio Fecha de inicio
X

xmatias

Gamma
Verificación en dos pasos activada
Estoy intentando parseas un codigo html como el siguiente:

Insertar CODE, HTML o PHP:
<dt>Sinopsis</dt>
        <dd>En el verano de 1954, los agentes judiciales Teddy Daniels (DiCaprio) y Chuck Aule (Ruffalo) son destinados a una remota isla del puerto de Boston para investigar la desaparición de una peligrosa asesina (Mortimer) que estaba recluida en el hospital psiquiátrico Ashecliffe, un centro penitenciario para criminales perturbados dirigido por el siniestro doctor John Cawley (Kingsley). Pronto descubrirán que el centro guarda muchos secretos y que la isla esconde algo más peligroso que los pacientes. Thriller psicológico basado en la novela homónima de Dennis Lehane (autor de &quot;Mystic River&quot; y &quot;Gone Baby Gone&quot;). (FILMAFFINITY)</dd>

y necesito obtener el contenido de la etiqueta dd ¿cómo lo hago? estaba probando esto pero no me funcionó:

PHP:
preg_match_all("(<dt>Sinopsis</dt><dd>(.*)</dd>)siU", $result, $sinopsis);

Saludos y gracias :encouragement:
 
¿Es esto lo que precisas?
PHP:
$etiqueta = '<dt>Sinopsis</dt><dd>En el verano de 1954, los agentes judiciales Teddy Daniels (DiCaprio) y Chuck Aule (Ruffalo) son destinados a una remota isla del puerto de Boston para investigar la desaparición de una peligrosa asesina (Mortimer) que estaba recluida en el hospital psiquiátrico Ashecliffe, un centro penitenciario para criminales perturbados dirigido por el siniestro doctor John Cawley (Kingsley). Pronto descubrirán que el centro guarda muchos secretos y que la isla esconde algo más peligroso que los pacientes. Thriller psicológico basado en la novela homónima de Dennis Lehane (autor de &quot;Mystic River&quot; y &quot;Gone Baby Gone&quot;). (FILMAFFINITY)</dd>';
        $patronCoincidencia ='/<dd>(.*)</';
        preg_match_all($patronCoincidencia, $etiqueta, $matches);
        print_r($matches);

El contenido se guarda en la posición cero del array $matches.
 
Necesito incluir el <dt>Sinopsis</dt> porque me toma otro dato.
 
Lo más seguro es que no te haya funcionado como lo tienes porque lo pusiste "</dt><dd>" y en el ejemplo que pones hay tanto salto de linea como tabuladores entre "</dt>" y "<dd>", ponle que en ese parte pueda haber saltos de linea y tabuladores.

Saludos.

- - - Actualizado - - -

Con algo como esto, te deberia de funcionar:

PHP:
preg_match_all("(<dt>Sinopsis</dt>\s*<dd>(.*)</dd>)siU", $result, $sinopsis);
 
Lo más seguro es que no te haya funcionado como lo tienes porque lo pusiste "</dt><dd>" y en el ejemplo que pones hay tanto salto de linea como tabuladores entre "</dt>" y "<dd>", ponle que en ese parte pueda haber saltos de linea y tabuladores.

Saludos.

- - - Actualizado - - -

Con algo como esto, te deberia de funcionar:

PHP:
preg_match_all("(<dt>Sinopsis</dt>\s*<dd>(.*)</dd>)siU", $result, $sinopsis);

Muchas gracias :encouragement:
 
Atrás
Arriba