php json_encode不转义双引号
时间: 2023-08-03 18:04:40 浏览: 363
php 防止单引号,双引号在接受页面转义
在PHP中,`json_encode()`函数默认会将字符串中的双引号进行转义,以避免在生成的JSON字符串中出现语法错误。
例如,如果有一个字符串变量如下:
```php
$str = 'Hello "World"';
```
使用`json_encode()`函数将其转换成JSON字符串,结果如下:
```json
"Hello \"World\""
```
可以看到,双引号被转义成了`\"`。
如果你希望在生成的JSON字符串中不转义双引号,可以传入`JSON_UNESCAPED_SLASHES`选项参数。例如:
```php
$str = 'Hello "World"';
echo json_encode($str, JSON_UNESCAPED_SLASHES);
```
输出结果如下:
```
"Hello "World""
```
可以看到,双引号没有被转义。需要注意的是,在这种情况下,如果字符串中包含反斜杠`\`,则仍然会被转义成`\\`。如果想同时避免转义反斜杠,可以传入`JSON_UNESCAPED_UNICODE`选项参数。例如:
```php
$str = 'Hello "World\"';
echo json_encode($str, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
```
输出结果如下:
```
"Hello "World\\""
```
可以看到,双引号和反斜杠都没有被转义。
阅读全文