1

PHP を使用してファイルからページ ソースを取得しました。その出力は次のようになります。

<div class="basic">

 <div class="math">

  <div class="winner">

   <div class="under">

        <div class="checker">

         <strong>check</strong>

        </div>

   </div>

  </div>

 </div>

</div>

これから、 'under'(class name) として入力を与えるときに、div全体と以下のような内容を持つ特定の 'div' のみを取得する必要があります。誰かがphpを使ってこれを行う方法を教えてくれます

<div class="under">

      <div class="checker">

         <strong>check</strong>

      </div>

 </div>
4

3 に答える 3

16

これを試して:

$html = <<<HTML
<div class="basic">
    <div class="math">
        <div class="winner">
            <div class="under">
                <div class="checker">
                    <strong>check</strong>
                </div>
            </div>
        </div>
    </div>
</div>;
HTML;

$dom = new DOMDocument();

$dom->loadHTML($html);

$xpath = new DOMXPath($dom);

$div = $xpath->query('//div[@class="under"]');

$div = $div->item(0);

echo $dom->saveXML($div);

これは出力されます:

<div class="under">
    <div class="checker">
        <strong>check</strong>
    </div>
</div>
于 2012-08-24T14:24:17.277 に答える
7

任意の Web ページから特定の div id からコンテンツを抽出する関数

以下の関数は、指定された div からコンテンツを抽出して返します。ID を持つ div が見つからない場合は、false を返します。

function getHTMLByID($id, $html) {
    $dom = new DOMDocument;
    libxml_use_internal_errors(true);
    $dom->loadHTML($html);
    $node = $dom->getElementById($id);
    if ($node) {
        return $dom->saveXML($node);
    }
    return FALSE;
}

$id<div>抽出しようとしているコンテンツの ID、$htmlHTML マークアップです。

使用例:

$html = file_get_contents('http://www.mysql.com/');
echo getHTMLByID('tagline', $html);

出力:

The world's most popular open source database
于 2014-02-19T19:28:23.137 に答える
-2

あなたが何を尋ねているのかわかりませんが、これはそれかもしれません

preg_match_all("<div class='under'>(.*?)</div>", $htmlsource, $output);

$output には、その div の内部コンテンツが含まれるようになりました

于 2012-08-24T13:42:36.323 に答える