web-dev-qa-db-ja.com

PHP HTMLコードの解析

可能性のある複製:
HTMLを解析する最良の方法

PHP変数に保持されているHTMLコードをどのように解析できますか?

<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG!

私は見出しの間にあるテキストのみを取得したいのですが、正規表現を使用するのは得策ではないことを理解しています。

44
Francisc

PHP ドキュメントオブジェクトモデル

<?php
   $str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';
   $DOM = new DOMDocument;
   $DOM->loadHTML($str);

   //get all H1
   $items = $DOM->getElementsByTagName('h1');

   //display all H1 text
   for ($i = 0; $i < $items->length; $i++)
        echo $items->item($i)->nodeValue . "<br/>";
?>

これは次のように出力されます。

 T1
 T2
 T3

[編集]:OP明確化後:

Lorem ipsum。などのコンテンツが必要な場合は、この正規表現を直接使用できます。

<?php
   $str = '<h1>T1</h1>Lorem ipsum.<h1>T2</h1>The quick red fox...<h1>T3</h1>... jumps over the lazy brown FROG';
   echo preg_replace("#<h1.*?>.*?</h1>#", "", $str);
?>

この出力:

Lorem ipsum。迅速な赤いキツネ......怠laな茶色のFROGを飛び越える

107
shamittomar