• ベストアンサー

PHPでHTMLの中から <div>~</div> を取り出したい

PHP 4.4.2 を使っています。 HTMLの中の <div class="main">~</div> で囲まれているテキストを取り出したいのですが、どのようにするのが良いでしょうか。 ファイルの先頭から順番に調べていくことも検討しましたが、<div>は入れ子になる可能性もあるので、それを考えたらわからなくなりました。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 まぁ頑張って自前でパースするのが結局は一番良いんじゃないかな。他人が作ったルーチンは細かいところで要求した動きができない事もある。  ところで、入れ子になった場合の動作は、君が決める事だ。 ~~~~~ <div>現在div1の中です。</div> <div>現在div2の中です。<div>入れ子2-1になりました</div>入れ子終わり</div> ~~~~~  この状況で、div1は全く問題ないよね。<div>が現れてから</div>が現れるまでを機械的に抜き出せば良い。  div2の場合にどうしたいか。だね。 1.div2を丸ごと取り、div2-1は無視(div2の本文中として扱う) 2.div2はdiv2として取り、div2-1も1つのdivとして別個に取る。 3.div2はdiv2として取り、div2-1は1つのdiv、さらに、div2はdiv2-1を省いたものとする。  これは要求仕様なので、どうすればよいかではなくどうしたいかだ。どちらにせよ、<div>と</div>をカウントしてスタックに積んでおけば技術的に難しい事は何もない。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

HTML Parser for PHP 4 https://sourceforge.net/project/showfiles.php?group_id=91649 というものがあるので紹介しておきます。 具体的にどうするかというのは、 #1の方が言われるように、 具体的な状態とどうしたいかによるので書けませんので。

関連するQ&A