你好创造者

json_decode()解析失败,我的解决方案

  在PHP中,对json数据的解析要求十分的严格,我遇到过因为文件BOM头的原因导致解析失败,而如今因为\t导致解析失败。因此查询百度分析出了这次是因为\t的原因。在此我罗列下json数据解析的要求:

回送内容必须使用UTF-8编码
文件不能包含BOM头,有不少开发工具都会加上BOM头
不能存在\r\t等一些隐藏的不可见的字符
至于单引号,双引号的问题,最好使用双引号

  之前我使用PHPStorm开发,于是乎有了UTF-8 BOM头,导致解析失败,于是我换了开发工具, 交叉使用Zend Studio和Sublime Text。后来,也就是如今的\t的解析失败,幸运的是,我之前写了一个工具类,其中有个静态方法,使用正则去除所有空格,包括\t等组成的空格。使用了后,去除了\t的影响,分分钟钟解决解析问题,在此贴出代码,不足之处还望海涵。

public static function trim($content){
    return preg_replace("/[\s]{1,}/", "", $content);
}

  就一行而已咯咯。简单而使用,PHP内置的trim()只能对首尾的空格或其他预定字符去除,但是我使用后,还是空格存在首部,不知是不是因为中文的空格原因。而使用了自己写的trim()后,分分钟钟成功了。


转载需经作者允许并注明出处(http://hiunique.com/php/35.html)
来自:你好创造者

添加评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif