さて、私がこの文字列を持っているとしましょう:
<div class='box'>i like the world</div><div class='box'>i like my computer</div>
「世界」という単語を含むdivをエコーするにはどうすればよいですか? これにはある種の正規表現が含まれますか?
よろしくお願いします。
さて、私がこの文字列を持っているとしましょう:
<div class='box'>i like the world</div><div class='box'>i like my computer</div>
「世界」という単語を含むdivをエコーするにはどうすればよいですか? これにはある種の正規表現が含まれますか?
よろしくお願いします。
DOMDocumentとDOMXPathを使用すると、これを簡単に行うことができます。
<?php
$html = "<div class='box'>i like the world</div><div class='box'>i like my computer</div>";
$doc = new DOMDOcument();
$doc->loadHTML($html);
$xPath = new DOMXPath($doc);
$nodes = $xPath->query("//div[contains(text(),'world')]");
$nodes
これで、単語 を含むすべてのdiv
要素が含まれますworld
。
デモ: http://codepad.viper-7.com/Dhalvh
HTML を正規表現で解析しようとしないことに注意してください。なぜなら、壊れるかどうかではなく、いつ発生するかの問題だからです。
<?php
$html[0] = "<div class='box'>i like the world</div>";
$html[1] = "<div class='box'>i like my computer</div>";
foreach ($html as $div) {
if (preg_match("/world/i", $div)) {
echo($div);
}
}
?>
はい、正規表現はそれを行う便利な方法だと思います。