【发布时间】:2012-11-16 07:15:39
【问题描述】:
我正在尝试使用 file_get_contents() 使用 PHP 抓取页面。 这个页面有一些用一些 HTML 包裹的 JSON。我想去掉这个 HTML 以便能够在抓取的字符串上使用 json_decode() ,这样我就可以单独处理 JSON。 有什么干净的方法可以做到这一点吗?快速搜索并没有真正导致任何结果。 谢谢
【问题讨论】:
标签: php html file-get-contents json
我正在尝试使用 file_get_contents() 使用 PHP 抓取页面。 这个页面有一些用一些 HTML 包裹的 JSON。我想去掉这个 HTML 以便能够在抓取的字符串上使用 json_decode() ,这样我就可以单独处理 JSON。 有什么干净的方法可以做到这一点吗?快速搜索并没有真正导致任何结果。 谢谢
【问题讨论】:
标签: php html file-get-contents json
解析/剥离 HTML 内容总是一个棘手的问题,因为(常见?)如果 HTML 标记格式错误并且速度缓慢,那么通过正则表达式的解决方案可能会崩溃。我建议使用这个小的 HTML DOM 解析器类:
http://simplehtmldom.sourceforge.net/
从子评论编辑和添加:
好吧,这是一个糟糕的问题,因为内联 javascript 没有正确地用 CDATA-Tags 包装。否则这样的事情可能会起作用:
$html = new simple_html_dom();
$html->load_file('your-external-file');
foreach($html->find("script") as $obj) {
if(isset($obj->innertext) && strpos($obj->innertext, 'window._jscalls'))
echo $obj->innertext;
}
【讨论】: