3

特定の div 要素を読み込んで、PHP を使用して自分のページに表示するのに問題があります。私のコードは次のとおりです。

<?php
    $page = file_get_contents("http://www.bbc.co.uk/sport/football/results");
    preg_match('/<div id="results-data" class="fixtures-table full-table-medium">(.*)<\/div>/is', $page, $matches);
    var_dump($matches);
?>

id="results-data" をロードして自分のページに表示したい。

4

2 に答える 2

7

URL を操作してページの一部だけを取得することはできません。そのため、選択したサーバー側の言語を介してページのコンテンツを取得し、HTML を解析する必要があります。そこから、探している特定の DIV を取得して、それを画面に出力できます。不要なコンテンツを削除するために使用することもできます。

PHP を使用file_get_contents()すると、解析するファイルを読み取り、DOMDocumentを使用して解析し、必要な DIV を取得できます。

これが基本的な考え方です。これはテストされていませんが、正しい方向に向ける必要があります。

$page = file_get_contents('http://www.bbc.co.uk/sport/football/results');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
foreach($divs as $div) {
    // Loop through the DIVs looking for one withan id of "content"
    // Then echo out its contents (pardon the pun)
    if ($div->getAttribute('id') === 'content') {
         echo $div->nodeValue;
    }
}
于 2012-06-12T06:10:52.423 に答える
2

HTMLパーサーを使用する必要があります。PHPQueryを見てください。これを行う方法は次のとおりです。

require_once('phpQuery/phpQuery.php');
$html = file_get_contents('http://www.bbc.co.uk/sport/football/results');
phpQuery::newDocumentHTML($html);
$resultData = pq('div#results-data');
echo $resultData;

ここでチェックしてください:

http://code.google.com/p/phpquery

セレクターのドキュメントも参照してください。

于 2012-05-27T19:12:34.117 に答える