一尘不染

PHP JSON字符串,对JS输出进行转义双引号

php

我正在从PHP数组创建JSON字符串。我已经使用对其进行了编码json_encode()

$data = array(
    'title' => 'Example string\'s with "special" characters'
);

$data = json_encode( $data );

$data使用进行本地化wp_localize_script(),并可以通过全局data变量进行访问。

在JS文件中,我可以通过以下方式访问信息:

var data     = data.replace( /"/g, '"' ),
    jsonData = jQuery.parseJSON( data );

console.log( jsonData );

结果是:

{ "title":"Example string's with "special" characters" }

将结果输入http://jsonlint.com/会返回错误。删除“特殊”两边的双引号可验证字符串。

从PHP创建JSON字符串并正确转义以供JS文件使用的最佳方法是什么?


阅读 773

收藏
2020-05-29

共1个答案

一尘不染

来自http://www.php.net/manual/zh/function.json-
encode.php#100565

就是说,引号“会产生无效的JSON,但这仅是一个问题,如果您使用的是json_encode()并且只希望PHP神奇地转义您的引号。您需要自己进行转义。

2020-05-29