首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP json_encode中转义撇号

如何在PHP json_encode中转义撇号
EN

Stack Overflow用户
提问于 2020-08-19 03:27:31
回答 1查看 246关注 0票数 0

我正在将一个json_encode对象传递给一个按钮。

代码语言:javascript
复制
 <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似乎没有解决这个问题。

代码语言:javascript
复制
  public function getWebShare() {
    foreach ($this->web_share as &$value) {
      $value = addslashes($value);
    }
    return $this->web_share;
  }

addslashes方法似乎确实要将\添加到can't word中,试图对其进行大小写处理,但它仍然破坏了完整的字符串,如上图所示。

我如何从单个撇号结束的字符串开始?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-19 03:35:54

函数json_encode仅将数据编码为有效的JSON格式。要使用JSON字符串(或任何字符串)作为有效的HTML tag属性,您应该使用htmlspecialchars或等效的方法来处理它。

Twig的escape过滤器应该适用于您的情况。

代码语言:javascript
复制
<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"}]'>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63475423

复制
相关文章

相似问题

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