位置:首页 » 文章/教程分享 » php返回json数组前面出现UTF8的BOM解决办法

用php返回json数据时,经常会因为包含文件、读取文件等格式的混乱,返回的UTF8数据有BOM,怎么去除这个BOM头呢?请看文本介绍的方法。

先用浏览器看返回的json数据:

里面包含有BOM头

简单的方法,在返回接口前面加ob_clean()完美解决。

header('Content-Type:application/json');
ob_clean();

也可以使用字符串判断去除BOM

function checkbom($str,$remove = true) {
	$charset[1] = substr($str, 0, 1);
	$charset[2] = substr($str, 1, 1);
	$charset[3] = substr($str, 2, 1);
	if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
		return substr($str, 3);
	}
	else{
		return $str;
	}
}