BOM头介绍
BOM头,全称Byte Order Mark,中文名为“字节顺序标记”。它出现在文本文件的头部,主要用于标识文件的编码格式。
造成原因大部分是因为直接使用记事本打开修改php代码,保存没注意,使PHP带了BOM头。所以我们只需要用专业的编辑器工具打开文件,重新保存,保存选择去掉BOM头即可。
批量自动清除BOM头
这里分享下自用的PHP批量自动清除php文件BOM头脚本代码,只需要上传到目录,然后浏览器访问运行即可自动清除目录下的所有php文件BOM头,代码如下:
<?php
header("Content-Type:text/html; charset=utf-8");
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 "文件名称: $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);
}
?>帝国CMS教程
织梦cms教程
discuz教程
ecshop教程
phpcms教程
wordpress教程
苹果cms教程
php教程
数据库教程
微信小程序教程
python教程
css教程
js教程
视频教程
电子书
最新更新- 01 PHP报错SWOOLEC loader ext not installed,及SWOOLEC loader安装方法 1天前
- 02 PHP批量自动清除php文件BOM头脚本代码分享 1个月前
- 03 PHP报错:PHP Notice: Undefined variable: _SESSION解决方法 5个月前
- 04 使用PHP获取XHR请求来源方法 5个月前
- 05 thinkphp请求调用API接口函数分享 5个月前
- 01 分享几个随机美女图api接口 4701热度
- 02 优学院自动刷课PHP代码 813热度
- 03 最新蓝奏云直连解析API接口php代码 671热度
- 04 php文件限速下载示例代码 669热度
- 05 随机二次元图片API接口源码 644热度
