一尘不染

在JSON编码的HTML5数据属性中转义/编码单引号

json

在PHP中,我用于json_encode()在HTML5数据属性中回显数组。根据JSON的要求-并json_encode()生成-
用双引号引起来的值。为此,我将数据属性用单引号引起来,例如:

<article data-tags='["html5","jquery","php","test's"]'>

如您所见,最后一个标记(测试的)包含一个单引号,并且json_encode()不带任何选项的使用会导致解析问题。

因此,我使用json_encode()JSON_HEX_APOS参数,并且解析很好,因为我的单引号已编码,但我想知道:这样做有不利之处吗?


阅读 257

收藏
2020-07-27

共1个答案

一尘不染

您需要将HTML转义数据回显到HTML:

printf('<article data-tags="%s">',
    htmlspecialchars(json_encode(array('html5', ...)), ENT_QUOTES, 'UTF-8'));
2020-07-27