您的位置:主页 > 营销知识 > 建站资讯 > 一键清理BOM的小程序
在我们进行网站开发的时候,我们可能会遇到网页源码正确却显示有问题的情况,这种情况一般是我们在进行更改的时候,使用了windows自带的编辑器进行代码编辑从而产生了BOM的缘故。
Bom解决方法较为简单,直接用专业软件如sublime或者notepad重新保存下就行了,但是如果页面比较多的话,那样处理起来就比较麻烦了。
垒越科技为了大家方便,特地编写了一个较为实用的PHP小程序,现将小程序分享如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8">
<title>清除BOM文件头--垒越科技定制</title>
</head>
<body>
<?php
//如果只清除单个目录BOM头,可以在php后面加上?dir=data 比如127.0.0.1/bom.php?dir=data
header('Content-type: text/html;charset=utf-8');
if (isset($_GET['dir'])){ //config thebasedir
$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);
}
}
}
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 found, automaticallyremoved.</font>");
}else {
return ("<font color=red>BOM found.</font>");
}
}
elsereturn ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
</body>
</html>
复制以上的代码到一个新建的bom.txt文件中,然后将bom.txt改为bom.php(注意这里是直接改了文件的后缀,不是改为bom.php.txt,如不会的可以先上传到服务器后改),然后上传到网站的根目录上,最后直接访问改文件即可运行小程序,达到一键清理网页BOM的功效。
最后说明一点的是,使用完成后最好删除该文件,否则容易让人爬取你网站的根目录了。
上海云轩网络版权所有 Copyright©2008-2018 http://www.lvon8.com All Rights Reserved 备案号:沪ICP备14049216号