Php JSON封装在一些HTML中,删除HTML
可能重复:Php JSON封装在一些HTML中,删除HTML,php,html,file-get-contents,json,Php,Html,File Get Contents,Json,可能重复: 我正试图用PHP使用file_get_contents()刮取一个页面。 这个页面有一些JSON被包装在一点HTML中。我想去掉这个HTML,以便能够在刮取的字符串上使用json_decode(),这样我就可以单独处理json了。 有什么干净的方法可以做到这一点吗?快速搜索并没有真正导致任何结果。 谢谢解析/剥离HTML内容始终是一个棘手的问题,因为如果HTML标记格式不正确且速度缓慢,通过正则表达式(常见?)的解决方案可能会崩溃。顺便说一句,我建议使用这个小小的HTML DOM解
我正试图用PHP使用file_get_contents()刮取一个页面。 这个页面有一些JSON被包装在一点HTML中。我想去掉这个HTML,以便能够在刮取的字符串上使用json_decode(),这样我就可以单独处理json了。 有什么干净的方法可以做到这一点吗?快速搜索并没有真正导致任何结果。
谢谢解析/剥离HTML内容始终是一个棘手的问题,因为如果HTML标记格式不正确且速度缓慢,通过正则表达式(常见?)的解决方案可能会崩溃。顺便说一句,我建议使用这个小小的HTML DOM解析器类:
从子命令编辑并添加:
好的,这是一个糟糕的例子,因为内联javascript没有正确地用CDATA标记包装。否则,类似的方法可能会起作用:
$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;
}
是的,使用正则表达式是不可能的。我曾经想到过简单的HTML DOM,但由于我试图解析的是JSON,因此我无法真正理解它,因为返回的字符串只包含HTML而不包含JSON……您能提供一个HTML/JSON标记的示例吗?我现在正在打电话,但客户端制作的东西与您在Instagram页面上看到的非常类似(就像这一个)。ThxOkay这是一个糟糕的方法,因为内联javascript没有正确地用CDATA标记包装。否则类似的方法可能会起作用:请参阅top post(虽然很脏)。使用HTML Simple Dom buddy的好方法,非常感谢,我可以让它以这种方式工作,尽管它不是很干净,但至少暂时起作用。