• 締切済み

phpで文字列に入ったhtmlタグの中身を取得

phpで次の文字列の中身を自分の思ったように取得したいです。 -----$textの中身 <div class="hoge">ほげほげ1<div class="piyo">ぴよぴよ</div>ほげほげ2</div> -----自分の実行したphpコード preg_match_all("/<div class=\"hoge\">(.*?)<\/div>/s", $text, $textArr); -----結果($textArr[0]) ほげほげ1<div class="piyo">ぴよぴよ -----自分の望む結果($textArr[0]) ほげほげ1<div class="piyo">ぴよぴよ</div>ほげほげ2 ---------------------------------- divタグの中にdivタグが入っている時、 最初の/divに反応してしまいます。ちゃんと、ほげほげ2まで取得する方法を教えてください。

みんなの回答

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

以下を実行して結果を確認してくれたまい。 <?php $text = '<div class="hoge">ほげほげ1<div class="piyo">ぴよぴよ</div>ほげほげ2</div>'; preg_match_all("/<div class=\"hoge\">(.*?)<\/div>/s", $text, $textArr1); var_dump($textArr1); preg_match_all("/<div class=\"hoge\">(.*)<\/div>/s", $text, $textArr2); var_dump($textArr2); ?> クエスチョンマークの有無で何が変わるかが分からなければ「PHP preg_match 最短マッチ」で検索するとよろしかろう。

関連するQ&A

専門家に質問してみよう