如何解决如何在PHP json_encode中转义撇号
我正在将json_encode对象传递给按钮。
<button aria-controls="web-share-fallback" aria-expanded="false"
class="c-share__link btn-link underline font-normal"
data-js="web-share track" data-web-share='{{
post.getWebShare()|json_encode }}' data-track-key="Web Share" data-track-data='[{"action": "web-share"}]'>
现在getWebShare()
返回一个数组,该数组似乎在以下字符串中中断。
can't
一词似乎导致字符串结束,从而阻止了按钮触发。 json_encode
似乎无法解决这个问题。
public function getWebShare() {
foreach ($this->web_share as &$value) {
$value = addslashes($value);
}
return $this->web_share;
}
方法addslashes似乎在\
词上添加了can't
,试图为其换码,但是它仍然破坏了完整的字符串,如上图所示。
如何从单撇号结尾关闭字符串?
解决方法
函数json_encode
仅将数据编码为有效的JSON格式。要将JSON字符串(或与此相关的任何字符串)用作有效的HTML标签属性,您应使用htmlspecialchars或等价的方式对其进行处理。
Twig的escape过滤器应适合您的情况。
<button aria-controls="web-share-fallback" aria-expanded="false"
class="c-share__link btn-link underline font-normal"
data-js="web-share track" data-web-share='{{
post.getWebShare()|json_encode|escape }}' data-track-key="Web Share" data-track-data='[{"action": "web-share"}]'>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。