【问题标题】:Twitter typeahead displays '&amp' instead of '&'Twitter 预输入显示“&amp”而不是“&”
【发布时间】:2013-08-25 13:12:02
【问题描述】:

我正在尝试显示带有符号 & 的搜索结果。但是当我从 php 渲染到 json & 转换为 &amp.

无论如何我可以阻止这种情况,或者在我在搜索栏中打印名称之前将其转换回 &?

提前致谢!

编辑: HTML JS:

                {
              name: 'industries',
              prefetch: 'industries_json.json',
              header: '<h1><strong>Industries</strong></h1>',
              template: '<p>{{value}}</p>',
              engine: Hogan
            },

industries_json.json(使用 json_encode 创建)

[{"id":42535,"value":"AUTOMOBILES &AMP; COMPONENTS","type":"industries"}]

输出json的php脚本:

    public function renderJSON($data){
    header('Content-type: application/json');
    echo json_encode($data);
}

【问题讨论】:

  • 下一次,考虑用您正在使用的语言标记您的问题:PHP。这有助于 PHP 人员更轻松地找到您的问题。

标签: php json twitter-bootstrap typeahead


【解决方案1】:

使用 html_entity_decode 函数,如...

之前的代码:

public function renderJSON($data){
    header('Content-type: application/json');
    echo json_encode($data);
}

输出:以字符串形式提供 html 代码,例如:appthemes &amp;amp; Vantage search Suggest

之后的代码:

public function renderJSON($data){
    header('Content-type: application/json');
    $data = json_encode($data);
    echo html_entity_decode( $data );
}

输出:以字符串形式提供 html 代码,例如:appthemes & Vantage search Suggest

【讨论】:

    【解决方案2】:

    您面临的问题是 HTML 编码。您想要的是在将文本发送到客户端之前对其进行解码。重要的是您只解码 JSON 对象的文本属性(而不是整个 JSON 对象本身)。

    这里是PHP中HTML解码的参考:http://php.net/manual/en/function.html-entity-decode.php

    【讨论】:

    • 我不确定你的意思。我使用“预取”函数来预取以下格式的结果: [{“id”:42535,"value":"AUTOMOBILES &AMP; COMPONENTS","type":"industries"}] 我正在使用 json_encode 函数在php中将原始数组转换为上面的结果。
    • 你能发布你正在使用的代码吗?如果我能确切地看到你在做什么,给你一个代码示例会更容易。
    • 好答案。它对我有帮助。我正在添加解释执行的代码,以便非 php 开发人员或初学者可以快速理解它:
    【解决方案3】:

    我会用 javascript 来做。获得 JSON 后,只需在 JSON 上使用 javascript 的替换功能,如下所示:

    首先将其转换为字符串:

    var jsonString=JSON.stringify(jsonData);
    

    然后像这样替换 &amp。

    jsonString=jsonString("&amp","&");
    

    然后再将其转换为 JSON obj;

    jsonObj=JSON.parse(jsonString);
    

    现在,您的 JSON 将使用 &amp; 而不是 &amp;amp

    接下来是什么?

    jsonObj做任何你需要做的事情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多