アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP を使って以下のような html の中にある <div id="foo"> に対応する </div> を検出するにはどうしたら良いでしょうか?

<html>
<head></head>
<body>
<div id="wrap">
<div id="foo">
<div>
<div>
<div>
</div>
</div>
</div>
<div>
</div>
</div>
</div>
</body>
</html>

これが思いつけず、先に進むことができません。
かなり困っていたので質問させていただきました。よろしくお願い致します。

A 回答 (1件)

その昔に本で読んだけれども面倒で実際に作って見たことがない処理ですが。



文字列を最初から調査して<div ...>が見つかったら調査したところまでを配列に格納
</div>が見つかったら次に<div ...>か</div>が出現するまでを同じく配列に格納
する処理を書きます。

うまく動けば以下のような配列ができます。

$a[0] = "<html>\n<head></head>\n<body>\n<div id=\"wrap\">";
$a[1] = "\n<div id=\"foo\">";
$a[2] = "\n<div>";
$a[3] = "\n<div>";
$a[4] = "\n<div>";
$a[5] = "</div>\n";
$a[6] = "</div>\n";
$a[7] = "</div>\n";
$a[8] = "<div>";
$a[9] = "\n</div>\n";
$a[10] = "</div>\n";
$a[11] = "</div></body></html>";

これさえ完成すれば

(n)番目の<div>に対応する</div>は(count($a) - n - 1)番目
内部の要素は(n-1)番目から(count($a) - n - 2)番目まで
と簡単に求めることができます。
    • good
    • 0
この回答へのお礼

素晴らしい回答をありがとうございます。
素晴らしい案ですね…試したくてうずうずしてきました!

お礼日時:2009/06/22 01:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!