簡體   English   中英

如何在 PHP json_encode 中轉義撇號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM