温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php bom指的是什么

发布时间:2023-02-20 14:14:10 来源:亿速云 阅读:92 作者:iii 栏目:编程语言

今天小编给大家分享一下php bom指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

php bom是用来判断文本文件是哪一种Unicode编码的标记;在utf-8编码文件中,BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。

1.问题描述:所有使用控制层返回的ajax请求都会在前面附加一个小红点,查了一下是因为文件前面有BOM,虽然事后证明并不是所有的文件都带有BOM,但是却造成所有的文件返回数据都出现问题。

2.那么,什么是BOM呢?

答曰:在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

3.解决方案,去网上找一些批量处理BOM的脚本运行一下就行了,你也可以运行像editplus、Ultraedit这样的工具来解决。

4.最后提供一个去BOM的文件,运行一下就可以了。

echo '当前查找的目录为:'.$basedir.'当前的设置是:';
echo $auto?'检测文件BOM同时去除检测到BOM文件的BOM<br />':'只检测文件BOM不执行去除BOM操作<br />';
checkdir($basedir);
function checkdir($basedir){
    if($dh=opendir($basedir)){
        while (($file=readdir($dh)) !== false){
            if($file != '.' && $file != '..'){
                if(!is_dir($basedir.'/'.$file)){
                    echo '文件: '.$basedir.'/'.$file .checkBOM($basedir.'/'.$file).' <br>';
                }else{
                    $dirname=$basedir.'/'.$file;
                    checkdir($dirname);
                }
            }
        }
        closedir($dh);
    }
}
function checkBOM($filename){
    global $auto;
    $contents=file_get_contents($filename);
    $charset[1]=substr($contents,0,1);
    $charset[2]=substr($contents,1,1);
    $charset[3]=substr($contents,2,1);
    if(ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191){
        if($auto==1){
            $rest=substr($contents,3);
            rewrite($filename,$rest);
            return (' <font color=red>找到BOM并已自动去除</font>');
        }else{
            return (' <font color=red>找到BOM</font>');
        }
    }else{
        return (' 没有找到BOM');
    }
}
function rewrite($filename,$data){
    $filenum=fopen($filename,'w');
    flock($filenum,LOCK_EX);
    fwrite($filenum,$data);
    fclose($filenum);
}
?>

以上就是“php bom指的是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI