2019年04月的文章

json_decode 解析非标准json数据返回值为空 Null解决方法

json_decode 解析非标准json数据返回值为空 Null解决方法


<?php
$html= json数据 
var_dump(json_decode($html,true)); //return null
var_dump(json_last_error()); // return 4
?>
json_last_error错误msg对照表:
0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX

5 = JSON_ERROR_UTF8

大概意思就是语法错误,主要可能是接口方,获取获取的数据非标准或者含有非utf-8字符等

过滤方法

<?php
$html="json数据";
$html=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $html);
var_dump(json_decode($html, true));
var_dump(json_last_error());
?>