我正在将一个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 word中,试图对其进行大小写处理,但它仍然破坏了完整的字符串,如上图所示。
我如何从单个撇号结束的字符串开始?
发布于 2020-08-19 03:35:54
函数json_encode仅将数据编码为有效的JSON格式。要使用JSON字符串(或任何字符串)作为有效的HTML tag属性,您应该使用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"}]'>https://stackoverflow.com/questions/63475423
复制相似问题