- 締切済み
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まで取得する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- anmochi
- ベストアンサー率65% (1332/2045)
以下を実行して結果を確認してくれたまい。 <?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 最短マッチ」で検索するとよろしかろう。