<?php
//有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题。以下是批量清除bom头的代码 if (isset ( $_GET ['dir'] )) { //config the basedir
$basedir = $_GET ['dir'];
} else {
$basedir = '.';
}
$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) { // BOM 的前三个字符的ASCII 码分别为 239 187 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 );
}

博主送福利了,微信扫码有惊喜。超值红包等着你。。么么哒

最新文章

  1. python数据结构与算法——图的广度优先和深度优先的算法
  2. android开发之路12(android四大组件&amp;Fragment&amp;AsyncTask类)
  3. 封装SqlHelper
  4. Keepalived+Lvs+Mysql主主复制
  5. LevelDB架构
  6. Vsftp的PASV mode和Port模式配置文件的设置
  7. Caffe的运行mnist手写数字识别
  8. mysql字符集,insert,update,delete,select
  9. POJ 3085 - Quick Change
  10. 爬虫-----selenium模块自动爬取网页资源
  11. android手机旋转方向识别
  12. python 定义类 简单使用
  13. SQL Server 的字段不为NULL时唯一
  14. 【转】MySQL安全配置介绍
  15. ubuntu ifconfig只有lo没有ens33的问题
  16. js Object.create 初探
  17. OpenGL基本框架与三维对象绘制
  18. apache 中 ServerAlias让多个域名绑定到同一空间
  19. loj10009 P1717 钓鱼
  20. python 函数参数介绍

热门文章

  1. use-gulp
  2. BNUOJ 1585 Girls and Boys
  3. linux shell &amp; man chmod
  4. Android 网络连接状态的监控
  5. node+mongodb+win7
  6. Ubuntu 16.04 GNOME添加桌面图标/在桌面上显示图标
  7. [TypeScript] Use TypeScript’s never Type for Exhaustiveness Checking
  8. [React] Make Compound React Components Flexible
  9. [Java Sprint] Spring XML Configuration : Constructor Injection Demo
  10. hbase shell经常使用命令