【问题标题】:json_encode escape special charactersjson_encode 转义特殊字符
【发布时间】:2018-07-16 04:32:26
【问题描述】:

我想将 php 数组传递给 jQuery 函数。
我尝试将数组发送为json_encode,如下所示:

<button onclick='callFunction(<? echo json_encode($myArray); ?>)'></button>

我的 json_encode 数组的结果是:

{"Date":"2018-01-26 12:55:00","Details":"FORLI IT"}

一切正常。

但如果我有这样的数组(带有'

{"Date":"2018-01-26 12:55:00","Details":"FORLI' IT"}

我的功能不再起作用 - 我的控制台将显示:

语法错误:意外的 EOF

我该如何解决这个问题?

【问题讨论】:

    标签: javascript php jquery arrays


    【解决方案1】:

    我建议你处理任何到 html 的方式是:

    <button onclick='callFunction(<? echo htmlentities(json_encode($myArray),ENT_QUOTES); ?>)'></button>
    

    http://php.net/manual/en/function.htmlentities.php检查所有可用的标志

    这个使用标志ENT_QUOTES,因为默认行为是只编码双引号。使用ENT_QUOTES 也会对单引号进行编码。

    【讨论】:

    • 问题依旧:SyntaxError: Unexpected EOF
    • 忘记了标志,再试一次
    • 这看起来好多了!!非常感谢:)
    【解决方案2】:

    尝试使用addslashes

    <button onclick='callFunction(<? echo json_encode(addslashes($myArray)); ?>)'></button>
    

    【讨论】:

    • 我试过这个并检查回声。是不是,在这个过程之后,回声是“空”的?
    猜你喜欢
    • 2017-02-27
    • 2014-01-08
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2017-07-12
    • 1970-01-01
    相关资源
    最近更新 更多