为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 PHP json_encode 中转义撇号

如何在 PHP json_encode 中转义撇号

PHP
幕布斯7119047 2023-10-15 17:12:14
我将 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方法似乎确实将 the 添加\到can't试图对其进行转义的单词中,但它仍然破坏了整个字符串,如上图所示。我该如何处理以单个撇号结尾的字符串?
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

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

Twig 的逃逸过滤器应该适合您的情况。

<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"}]'>



查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信