如何让json_encode不转义斜杠

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让json_encode不转义斜杠相关的知识,希望对你有一定的参考价值。

当服务器返回一些数据时需要返回一些地址,但是默认的json_code是会对 / 转义成 \\/ 的处理。。。

解决办法:

1. 正则替换:  echo str_replace("\\\\/", "/",  json_encode("2013/4/21"));

2. 若是php版本是5.4的话:   echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);

 

php格式化json的函数@json_encode($value,$options)

其中有2个比较常用到的参数:

JSON_UNESCAPED_UNICODE中文不转为unicode ,对应的数字 256)

JSON_UNESCAPED_SLASHES不转义反斜杠,对应的数字 64

 

通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?

JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320

使用方法:json_encode($arr,320);即可完成同时使用2个常量。

 

例如:

 

<?php
$arr = array(\'key\'=>\'中文/同时生效\');
json_encode($arr,320);

 

 结果:

 

 

以上是关于如何让json_encode不转义斜杠的主要内容,如果未能解决你的问题,请参考以下文章

json_encode中文不转义问题

jquery 冒号转义 为啥双斜杠

Vscode在使用变量之前转义斜杠

PHP json_encode重要的秘密

PHP面试题

PHP常见面试题汇总