【问题标题】:How to pass JSON with single quote from PHP to Javascript through HTML?如何通过 HTML 将带有单引号的 JSON 从 PHP 传递到 Javascript?
【发布时间】:2015-05-29 22:45:46
【问题描述】:

我正在尝试通过 HTML 将一些文本从我的 PHP 代码传递到 Javascript。除非文本有单引号,否则它工作正常。这是我的做法:

<script>

     var t = '<?php echo json_encode(an array containing text "he's here");?>';

</script>

我尝试将 php echo 周围的单引号更改为双引号。但是,当然,JSON 使用双引号,所以我遇到了同样的问题。

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    去掉php中的单引号

    <script type="text/javascript">
        var t = <?php echo json_encode(array("text"=>"he's here"));?>;
    </script>
    

    它将创建,t 变量为

    Object {text: "he's here"}
    

    【讨论】:

      【解决方案2】:

      您需要使用 json_encode 常量 JSON_HEX_APOS 作为第二个参数,它将所有单引号 ' 转换为 \u0027。 :

      var t = <?php echo json_encode($data,JSON_HEX_APOS);?>;
      

      然后使用 encode() 和 decode() javascript 函数将每个数组条目中的文本转换回可读文本,如示例http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_unescape

      【讨论】:

      • t不会变成json对象,这里是字符串。
      • @HiteshSiddhapura 你说得对,php代码周围不应该有引号。但是,如果他仍然需要以任何原因编码单 quone,现在他可以了。
      • @atomCode 明白了,他应该是把json对象写成字符串,会解决问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 2011-07-03
      • 2010-11-25
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多