现在的位置: 首页 > 综合 > 正文

PHP中file_get_contents函数获取带BOM的utf-8,然后json_decode() 返回null的问题

2017年11月26日 ⁄ 综合 ⁄ 共 430字 ⁄ 字号 评论关闭
$dmText
= file_get_contents( AROOT .'data'
. DS . 'DMType.json.php');
if(preg_match('/^\xEF\xBB\xBF/',$dmText))
{
    $dmText
= substr($dmText,3);
}
 
//trim
$dmText
= t($dmText);
echo
$dmText;
 
/* create array list from comments */
$dmList
= json_decode($dmText,true);   
//当该参数为 TRUE 时,将返回 array 而非 object 。
var_dump($dmList);

PHP5中的file_get_contents函数获取文件内容,实际是按二进制来读取的,所以,当你用file_get_contents去获取一个带BOM的UTF-8文件时,它并不会把UTF-8的BOM去掉,当你把读取的内容当作文本内容来进行一些操作时,可能会发生一些意想不到的结果。

抱歉!评论已关闭.