3

さて、私がこの文字列を持っているとしましょう:

<div class='box'>i like the world</div><div class='box'>i like my computer</div>

「世界」という単語を含むdivをエコーするにはどうすればよいですか? これにはある種の正規表現が含まれますか?

よろしくお願いします。

4

2 に答える 2

6

DOMDocumentDOMXPathを使用すると、これを簡単に行うことができます。

<?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 を正規表現で解析しようとしないことに注意してください。なぜなら、壊れるかどうかではなく、いつ発生するかの問題だからです。

于 2012-12-26T03:03:40.213 に答える
1
<?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);
        }
    }
?>

はい、正規表現はそれを行う便利な方法だと思います。

于 2012-12-26T02:55:21.413 に答える