我有一个问题是加载特定的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”并在我的页面上显示。
答案 0 :(得分: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;
}
}
答案 1 :(得分: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;
在这里查看: