2010
Jan
24
今天做新主题时发现了一个很奇怪的问题,怎么调整页面的顶端都有一小块空白,烦恼了半天,突然想到会不会是BOM的问题呢,因为曾经也遇到过类似问题,于 是到网上找了个小程序来检测BOM,果然不出所料,就是BOM在作怪,清除BOM后就好了。网上找的这段代码还真不错,不但能够检测BOM,还能够自动清除BOM,代码如下:
/*检测并清除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")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}//end while
closedir($dh);
}//end if($dh
}//end function
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 found, automatically removed.</font>";
}else{
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}//end function
function rewrite($filename, $data){
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}//end function
将以上代码保存为PHP文件,放入你要清除BOM的文件的文件夹根目录,运行一次即可。或者点击此处下载示例。
本站原创,转载请标明:来自追梦博客(http://www.wuleilei.com/)
相关文章
PHP经典乱码“锘”字与解决办法 (2009-06-08)
博客新版程序上线了 (2009-08-21)
博客修改之加入cookie和loading功能 (2009-09-24)
用PHP备份MysQL数据库并发送到指定邮箱 (2010-03-19)
SQLite 一款不错的数据库 (2010-05-22)
PHP中范围解析操作符::的含义及使用方法 (2011-03-14)
PHP配置了SQLite扩展却无法使用SQLite的解决方法 (2010-08-16)
PHP基础易混淆函数比较 (2010-10-25)
PHP无刷新上传文件原理 (2010-12-10)
Mac OS X 中配置PHP的MCrypt扩展 (2011-12-08)
看看他们的脚印
回归原始,爱设计,爱apple。 (5月18日)
速度通知啊! (5月17日)
又是一个三岔口,即将迈出的这一步对吗? (5月16日)
pardus
没有安装Xcode 就不行了吗