我已经谷歌搜索了一下,没有任何快乐。我通过$encoded = json_encode($myArray);
将其存储在MySQL数据库中之前。 99%的情况下,这很好,但在奇怪的情况下,编码的JSON看起来已损坏....
{ "value": " }
存储在数据库中。这是一个罕见的场合,事实上我还没有在我的本地开发环境中复制它,但你不知道用户可以!!
存储的数据来自表单上的<textarea>
,因此用户可能会放入一些在某处破坏事物的狡猾角色,事情是我已经尝试了每个我能想到的角色,甚至强迫非UTF-8字符,它永远不会导致上述情况。
我真的很难找到底线。首先,我无法看到json_encode
如何产生上述结果,或许可以确定这将有助于弄清楚发生了什么,但我被卡住了。
任何建议,帮助,指针都会很棒,
关我试着复制它。
答案 0 :(得分:0)
确保数据库中的字段足够长。我遇到了一个问题,即json编码的数据比字段长度长,并且被截断并导致它无效......有时只是查看编码数据,很难看到它在最后被截断。在你的php页面上回显它,并将它与最终在数据库中的字段中的数据进行比较...