json_encode 不转义 不转码 禁止转码,不要反斜杠
php在json_encode 时,会讲中文转码unicode 或者在写网址时 添加反斜杠,比如
<?php
$data['sitename']='网站制作学习网';
$data['siteurl']='https://www.forasp.cn';
echo json_encode($data);
输出结果为:
{"sitename":"\u7f51\u7ad9\u5236\u4f5c\u5b66\u4e60\u5b8c","siteurl":"https:\/\/www.forasp.cn"}
但是在有的时候我么不需要json_encode转码,怎么设置呢
这就需要 json_encode 的第二个参数部分
先看 禁止转unicode 编码
<?php
$data['sitename']='网站制作学习网';
$data['siteurl']='https://www.forasp.cn';
echo json_encode($data,JSON_UNESCAPED_UNICODE);
输出结果为:
{"sitename":"网站制作学习网","siteurl":"https:\/\/www.forasp.cn"}
再说,转移反斜杠的问题
<?php
$data['sitename']='网站制作学习完';
$data['siteurl']='https://www.forasp.cn';
echo json_encode($data,JSON_UNESCAPED_UNICODE);
输出结果为
{"sitename":"\u7f51\u7ad9\u5236\u4f5c\u5b66\u4e60\u5b8c","siteurl":"https://www.forasp.cn"}
如果两个都不要转移,直接添加两个参数 以 | 分割即可
echo json_encode($data,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);