[英]How escape apostrophe in PHP json_encode
我將 json_encode object 傳遞到按鈕中。
<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;
}
addlashes方法似乎確實將\
添加到can't
單詞中試圖對其進行轉義,但它仍然會破壞完整的字符串,如上圖所示。
我怎樣才能 go 關於關閉單個撇號的字符串?
function 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"}]'>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.