PHP批量检测并去除文件BOM头代码实例
更新时间:2014年05月08日 09:04:17 投稿:junjie
因为文件头信息输出BOM头信息,有时会对程序的执行结果造成影响,那么此时即应对这些文件的BOM信息进行去除
如下代码为PHP方式去除当前目录及子目录所有文件BOM信息的代码,新建文件,将其放倒根目录下,然后浏览器访问即可。
<?php
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);
}
}
}
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, automatically removed.</font>");
} else {
return ("<font color="red">BOM found.</font>");
}
} else
return ("BOM Not Found.");
}
function rewrite($filename, $data)
{
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
当然脚本小编为大家找到了一个软件版本的检测工具:下载地址 https://www.jb51.net/softs/496779.html
相关文章
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方
Zend Studio for Eclipse 6.x 可以算得上是最好的PHP的IDE了.2008-12-12
php中用socket模拟http中post或者get提交数据的示例代码
以下是对php中用socket模拟http中post或者get提交数据的示例代码进行了介绍,需要的朋友可以过来参考下2013-08-08
javascript数组与php数组的地址传递及值传递用法实例
这篇文章主要介绍了javascript数组与php数组的地址传递及值传递用法,实例分析了javascript与php的数组使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-01-01
php的instanceof和判断闭包Closure操作示例
这篇文章主要介绍了php的instanceof和判断闭包Closure操作,结合实例形式分析了PHP使用instanceof判断类实例以及判断闭包Closure相关操作技巧,需要的朋友可以参考下2020-01-01


最新评论