批量去除PHP文件中bom的PHP代码

 更新时间:2012年03月13日 23:41:01   作者:  
今天搜索查看网页源码时为什么开头会有空行这个问题时找到的,批量去除PHP文件中bom的PHP代码
需要去除BOM,就把附件里的tool.php文件放到目标目录,然后在浏览器访问tool.php即可!
复制代码 代码如下:

<?php
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。
//以下不用改动
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file))
echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
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);
}
?>

PHP批量去除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._<a href=http://www.joyphper.net>http://www.joyphper.net</a></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);
}
?>

相关文章

  • Yii数据模型中rules类验证器用法分析

    Yii数据模型中rules类验证器用法分析

    这篇文章主要介绍了Yii数据模型中rules类验证器用法,结合实例形式分析了rules类验证器的简单使用方法,代码注释中包含了相关方法的使用说明,需要的朋友可以参考下
    2016-07-07
  • Discuz论坛密码与密保加密规则

    Discuz论坛密码与密保加密规则

    这篇文章主要介绍了Discuz论坛密码与密保加密规则的相关资料,需要的朋友可以参考下
    2016-12-12
  • laravel 框架实现无限级分类的方法示例

    laravel 框架实现无限级分类的方法示例

    这篇文章主要介绍了laravel 框架实现无限级分类的方法,结合实例形式分析了Laravel框架基于递归遍历实现无限极分类输出的相关控制器及视图操作技巧,需要的朋友可以参考下
    2019-10-10
  • destoon数据库表说明汇总

    destoon数据库表说明汇总

    这篇文章主要介绍了destoon数据库表说明汇总,可以方便针对destoon进行二次的时候查询使用,需要的朋友可以参考下
    2014-07-07
  • PHP防止刷新重复提交页面的示例代码

    PHP防止刷新重复提交页面的示例代码

    我们可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个 Session 变量记录表单提交的次数,大于1时,就不再处理表单中的数据
    2015-11-11
  • PHP面试题之文件目录操作

    PHP面试题之文件目录操作

    本篇文章是我在之前面试这家公司时遇到的问题,当时代码写的不全,后来通过查阅相关资料,整理出来的一份分享给大家
    2015-10-10
  • php pthreads多线程的安装与使用

    php pthreads多线程的安装与使用

    这篇文章主要介绍了php pthreads多线程的安装与使用 的相关资料,需要的朋友可以参考下
    2016-01-01
  • 在swoole中制作一款仿制laravel的框架的实例代码

    在swoole中制作一款仿制laravel的框架的实例代码

    这篇文章主要介绍了在swoole中制作一款仿制laravel的框架,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • php用户注册页面利用js进行表单验证具体实例

    php用户注册页面利用js进行表单验证具体实例

    这篇文章介绍了php用户注册页面利用js进行表单验证具体实例,有需要的朋友可以参考一下
    2013-10-10
  • PHP实现微信申请退款流程实例代码

    PHP实现微信申请退款流程实例代码

    本篇文章给大家介绍php实现微信申请退款流程,使用到官方提供的SDK中的最重要的一个类文件WxPay.Api.php中提供的refund()方法来实现的,完整大家大家参考下本文
    2018-03-03

最新评论