有时候我们在访问一个输出json格式的接口时,逻辑和流程都正确,但在前端接入时,却不能正常解析,有时使用PHP做json解析,会返回NULL..
这种情况常发生在使用了第三方类库,很大概率是编码问题,或者有BOM头输出的问题
在引入和未引入第三方类库后,我们分别打印数据,会发现同样输出的数据,引入三方类库后,长度会多三个字符串,但看到的信息是一样的,这样就是存在BOM信息了
PHP过滤BOM的方法:
$request="***"; //含bom的json字串
if(substr(trim($request),0,3)==pack("CCC",0xEF,0xBB,0xBF)){
$request=substr(trim($request),3); //先过滤多余的空字符串,再截断bom
}
$res=json_decode($request,true);
通过上面的代码,即可完成bom的过滤