查看报错原因:

$data= json_decode($json);
var_dump($data);
if ($data=== null) {
echo “JSON 解析失败,错误信息:” . json_last_error();
}

JSON 解析失败,错误信息:4

案例1:

// 打印原始数据

var_dump($data);

string(169) “[{"s_id":"21857","s_name":"谢先生","s_tel":"18700001234"}]”

步骤1:我们可以使用htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

// htmlspecialchars_decode转义(1)

$data= htmlspecialchars_decode($data);

var_dump($data);

string(121) “[{"s_id":"21857","s_name":"谢先生","s_tel":"18700001234"}]”

// " 说明字符串没有完全转义

步骤2:

// htmlspecialchars_decode转义(2)-> 如果是前端多次转义后的json,一次转义后几下可能还会出现null

$data= htmlspecialchars_decode($data);

var_dump($data);

[{“s_id”:”21857″,”s_name”:”谢先生”,”s_tel”:”18700001234″}]

步骤3:

// json解析

$sets = json_decode($sets);

var_dump(strpos($sets, ‘"’)));

[“s_id”=> “21857”,”s_name”=>”谢先生”,”s_tel”=>18700001234]

 

ajax 影响转义行为的原因

检查ajax中提交的json是否被二次转义

相关参数

htmlspecialchars_decode()

函数将其处理回原来的字符串

html_entity_decode 与 htmlspecialchars_decode 的区别

strip_tags()

去除字符串中的 HTML、XML 以及 PHP 的标签,获取纯文本内容

htmlspecialchars()

反函数把预定义的字符转换为 HTML 实体

serialize

把对象转化为二进制的字符串

unserialize

反串行化一个对象

addslashes

指定的预定义字符前添加反斜杠

stripslashes

去掉反斜线字符

作者 admin

百度广告效果展示