我有一个包含字符串作为值的php关联数组,我将其编码为JSON并将其存储在html-data属性中.这是由一些JS读取的.
到现在为止还挺好.
现在,我需要为数据属性使用单引号,否则上下文切换.
<section id="settings" data-settings='{"some":"val"}'>
</section>
Run Code Online (Sandbox Code Playgroud)
问题是,我可以依靠json_encode()php 的功能来编码字符串总是用双引号?令人惊讶的是,我似乎无法找到相关信息.我只查找数组值中带引号问题的人的文章.
提前致谢.
是的,正如JSON规范中定义的那样,分隔符将始终如此".但是,值可能包含'字符,这会破坏您的HTML.为了保持简单而不担心可能会或可能不会造成问题,HTML-escape你的价值观!
<section data-settings="<?= htmlspecialchars(json_encode($foo)); ?>"></section>
Run Code Online (Sandbox Code Playgroud)
无论您输入什么值或如何编码它们,这都可以保证始终有效.请注意,htmlspecialchars默认情况下只会编码",而不是'; 所以你必须"用作HTML中的分隔符(或更改默认的转义行为).
| 归档时间: |
|
| 查看次数: |
4731 次 |
| 最近记录: |