json_encode转义特殊字符

时间:2018-02-06 07:19:26

标签: javascript php jquery arrays

我想将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"}

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

  

SyntaxError:意外的EOF

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

尝试使用addslashes

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

答案 1 :(得分:1)

我建议你处理任何与HTML有关的方法是:

ST_

检查http://php.net/manual/en/function.htmlentities.php

上的所有可用标记

这个使用标志<button onclick='callFunction(<? echo htmlentities(json_encode($myArray),ENT_QUOTES); ?>)'></button> ,因为默认行为是仅编码双引号。使用ENT_QUOTES也会对单引号进行编码。