php小偷解析http获取的json数据总是空白NULL

标题搞的都不知道怎么表达比较清楚了;使用PHP写了一个小偷去抓取别人网站json数据,数据抓取回来后很是奇怪,只要使用json_decode进行解析就直接为空NULL,而又直接把结果字符串复制出来手动创建一个变量却正常,在前端js也能解析,借助网上json数据监测也是正常的json数据,没错啊?搞了半天不得其解。

在测试的过程中使用 json_last_error() 函数打印一下错误,页面显示4,根据官方解释也就是语法错误。归根结底还是采集过来的数据问题,那么就只能从这里下手了。万能的搜索引擎还是有点靠谱,在翻阅了N多文章后,对比我获取来的数据信息,可能就是编码问题了(json不支持gbk编码,也就是说数据的编码错误)最终我的方法得以解决,直接上代码:

由于我所采集的数据中有特殊字符之类的信息,可能是这个方法导致;

另外附上其它2中方法,下面的两种方法并未实测,效果未知:

第三种:

如果上面的方式还是不行,再试试使用htmlspecialchars_decode进行转义后再使用json_decode进行解析:

这样一般都可以解决问题了,以后遇到问题再进行更新此文章!

参与评论