首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对JSON编码的HTML5数据属性中的单引号进行转义/编码

问对JSON编码的HTML5数据属性中的单引号进行转义/编码
EN

Stack Overflow用户
提问于 2012-01-12 17:16:07
回答 2查看 27K关注 0票数 31

在PHP中,我使用json_encode()回显HTML5数据属性中的数组。正如JSON要求的那样--而json_encode()生成的是用双引号封装的值。因此,我用单引号将我的数据属性括起来,例如:

代码语言:javascript
复制
<article data-tags='["html5","jquery","php","test's"]'>

如您所见,最后一个标记(test's)包含一个单引号,使用不带选项的json_encode()会导致解析问题。

因此,我使用带有JSON_HEX_APOS参数的json_encode(),解析很好,因为我的单引号是编码的,但我想知道:这样做有什么缺点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-12 17:19:37

您需要对回显到HTML中的数据进行HTML转义:

代码语言:javascript
复制
printf('<article data-tags="%s">',
    htmlspecialchars(json_encode(array('html5', ...)), ENT_QUOTES, 'UTF-8'));
票数 58
EN

Stack Overflow用户

发布于 2016-12-14 21:44:18

或者使用内置选项:

代码语言:javascript
复制
json_encode(array('html5', ...), JSON_HEX_APOS)

您可以在手册中查看:http://php.net/manual/en/json.constants.php#constant.json-hex-apos

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8832528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档