php 批量检测bom头,去除bom头工具
2024-08-26 05:54:13
<?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 );
}
博主送福利了,微信扫码有惊喜。超值红包等着你。。么么哒
最新文章
- python数据结构与算法——图的广度优先和深度优先的算法
- android开发之路12(android四大组件&;Fragment&;AsyncTask类)
- 封装SqlHelper
- Keepalived+Lvs+Mysql主主复制
- LevelDB架构
- Vsftp的PASV mode和Port模式配置文件的设置
- Caffe的运行mnist手写数字识别
- mysql字符集,insert,update,delete,select
- POJ 3085 - Quick Change
- 爬虫-----selenium模块自动爬取网页资源
- android手机旋转方向识别
- python 定义类 简单使用
- SQL Server 的字段不为NULL时唯一
- 【转】MySQL安全配置介绍
- ubuntu ifconfig只有lo没有ens33的问题
- js Object.create 初探
- OpenGL基本框架与三维对象绘制
- apache 中 ServerAlias让多个域名绑定到同一空间
- loj10009 P1717 钓鱼
- python 函数参数介绍
热门文章
- use-gulp
- BNUOJ 1585 Girls and Boys
- linux shell &; man chmod
- Android 网络连接状态的监控
- node+mongodb+win7
- Ubuntu 16.04 GNOME添加桌面图标/在桌面上显示图标
- [TypeScript] Use TypeScript’s never Type for Exhaustiveness Checking
- [React] Make Compound React Components Flexible
- [Java Sprint] Spring XML Configuration : Constructor Injection Demo
- hbase shell经常使用命令