Twitter预先显示'&'而不是'&'

时间:2013-08-25 13:12:02

标签: php json twitter-bootstrap typeahead

我正在尝试使用sign&amp ;;显示搜索结果在他们中。但是当我从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);
}

3 个答案:

答案 0 :(得分:2)

使用html_entity_decode函数,如...

之前的代码:

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

输出:在字符串中提供html代码,例如:appthemes &amp; Vantage搜索建议

代码之后:

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

输出:在字符串中提供html代码,例如:appthemes&amp; Vantage搜索建议

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我会用javascript来做。获得JSON之后,只需在JSON上使用javascript的replace函数,如下所示:

首先将它转换为字符串:

var jsonString=JSON.stringify(jsonData);

然后像这样更换&amp; amp。

jsonString=jsonString("&amp","&");
然后再次将其转换为JSON obj;

jsonObj=JSON.parse(jsonString);

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

下一步是什么?

jsonObj

执行任何操作