在PHP中,我用于json_encode()在HTML5数据属性中回显数组。根据JSON的要求-并json_encode()生成- 用双引号引起来的值。为此,我将数据属性用单引号引起来,例如:
json_encode()
<article data-tags='["html5","jquery","php","test's"]'>
如您所见,最后一个标记(测试的)包含一个单引号,并且json_encode()不带任何选项的使用会导致解析问题。
因此,我使用json_encode()该JSON_HEX_APOS参数,并且解析很好,因为我的单引号已编码,但我想知道:这样做有不利之处吗?
JSON_HEX_APOS
您需要将HTML转义数据回显到HTML:
printf('<article data-tags="%s">', htmlspecialchars(json_encode(array('html5', ...)), ENT_QUOTES, 'UTF-8'));