我正在尝试通过<div>
获取file_get_contents
内的内容。我想要做的是从google.com上的div resultStats
获取内容。我的问题是(afaik)打印它。
一些代码:
$data = file_get_contents("https://www.google.com/?gws_rd=cr&#q=" . $_GET['keyword'] . "&gws_rd=ssl");
preg_match("#<div id='resultStats'>(.*?)<\/div>#i", $data, $matches);
只需使用
print_r($matches);
只返回Array(),但我希望preg_match
这个数字。任何帮助表示赞赏!
编辑:感谢您向我展示正确的方向!我摆脱了preg_
调用,转而使用DOM。虽然我对PHP很陌生,这让我很头疼;我在Stack Overflow上找到了这个代码,我正在尝试编辑它以使其工作。到目前为止,我只收到一页空白,并且不知道我做错了什么。
$str = file_get_contents("https://www.google.com/search?source=hp&q=" . $_GET['keyword'] . "&gws_rd=ssl");
$DOM = new DOMDocument;
@$dom->loadHTML($str);
//get
$items = $DOM->getElementsByTagName('resultStats');
//print
for ($i = 0; $i < $items->length; $i++)
echo $items->item($i)->nodeValue . "<br/>";
} else { exit("No keyword!") ;}
答案 0 :(得分:0)
代表OP发表。
我决定使用PHP Simple HTML DOM Parser,结果是这样的:
include_once('/simple_html_dom.php');
$setDomain = "https://www.google.com/search?source=hp&q=" . $_GET['keyword'] . "&gws_rd=ssl";
$str = file_get_html($setDomain);
$html = str_get_html($str);
$html->find('div div[id=resultStats]', 0)->innertext . '<br>';
问题解决了!