Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON封装在一些HTML中,删除HTML_Php_Html_File Get Contents_Json - Fatal编程技术网

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的好方法,非常感谢,我可以让它以这种方式工作,尽管它不是很干净,但至少暂时起作用。