什么是BOM头,BOM头有什么影响,怎么去掉BOM头

次元: 365bet在线体育 时间戳: 2025-09-11 15:54:34 观察者: admin 访问量: 6827 能量值: 190
什么是BOM头,BOM头有什么影响,怎么去掉BOM头

什么是bom头?

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

bom头有什么影响?

特别是在调试好后放到服务器上后,由于BOM头的原因导致图片输出显示不了,例如验证码图片。或者在页面上会出现空白条占据页面等影响网页的影响。

如何清除BOM头?

如下代码为PHP方式去除当前目录及子目录所有文件BOM信息的代码,新建文件,将其放倒根目录下,然后浏览器访问即可。

if (isset($_GET['dir'])) { //设置文件目录

$basedir = $_GET['dir'];

} else {

$basedir = '.';

}

$auto = 1;

checkdir($basedir);

function checkdir($basedir)

{

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file != '.' && $file != '..') {

if (!is_dir($basedir . "/" . $file)) {

echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . "
";

} 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 ("BOM found, automatically removed.");

} else {

return ("BOM found.");

}

} else

return ("BOM Not Found.");

}

function rewrite($filename, $data)

{

$filenum = fopen($filename, "w");

flock($filenum, LOCK_EX);

fwrite($filenum, $data);

fclose($filenum);

}

?>

相关维度

【POE】勇士正火流派 (正義之火+火焰陷阱) 新手拓荒推薦

【POE】勇士正火流派 (正義之火+火焰陷阱) 新手拓荒推薦

藏在球衫里的秘密2丨他们的球衣里为什么没有国旗色?

藏在球衫里的秘密2丨他们的球衣里为什么没有国旗色?

腾讯游戏心悦会员等级揭秘:特权解析与查看攻略

腾讯游戏心悦会员等级揭秘:特权解析与查看攻略

淑云是谁演的,淑云扮演者,爱回来淑云

淑云是谁演的,淑云扮演者,爱回来淑云