【发布时间】:2014-07-27 19:18:10
【问题描述】:
我正在尝试通过file_get_contents 获取<div> 中的内容。我想做的是从 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!") ;}
【问题讨论】:
-
天啊。 HTML 上的 preg_match !!!你得到here
-
@jason-ooo 感谢您为我指明了正确的方向!我摆脱了 preg_ 并转而使用 DOM。虽然;我对 PHP 很陌生,这让我很头疼……我在 StackOverflow 上找到了这段代码,我正在尝试对其进行编辑以使其正常工作。到目前为止,我只收到一个空白页,不知道我做错了什么。巴斯宾:pastebin.com/Y4GpT961
-
请记住,问题的格式应该对长期读者有用 - 因此编辑标记和问题答案并不理想。我会努力解决的。
-
我已将您的答案移至单独的答案块。我将您的粘贴板转换为代码块 - 我们不太喜欢那些,因为它们在实践中可能很脆弱。感谢您发布您的答案。
标签: php parsing dom preg-match file-get-contents