PHP批量检测并去除文件BOM头代码实例
关于文件头信息中的BOM头对程序执行结果产生的影响及如何去除这些文件的BOM信息
当你访问这个PHP脚本时,它会遍历指定的目录及其所有子目录中的文件,并检查每个文件的BOM。如果发现某个文件含有BOM,它将自动移除并显示红色字体提示。以下是这段PHP代码:
```php
// 设置文件目录,可通过GET参数传入,否则默认为当前目录
if (isset($_GET['dir'])) {
$basedir = $_GET['dir'];
} else {
$basedir = '.';
}
$auto = 1; // 设置自动移除BOM标志
checkdir($basedir); // 开始检查目录
function checkdir($basedir) {
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..') { // 排除当前目录和上级目录
if (!is_dir($basedir . "/" . $file)) { // 如果是文件则检查BOM并显示结果
echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . "
";
} else { // 如果是目录则递归处理
$dirname = $basedir . "/" . $file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM($filename) {
global $auto; // 获取全局变量$auto用于判断是否自动移除BOM
$contents = file_get_contents($filename); // 读取文件内容
$charset = unpack('C', $contents)[1]; // 获取文件开头的三个字节,判断是否包含BOM
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { // 如果包含BOM则进行处理
if ($auto == 1) { // 如果设置了自动移除则移除BOM并返回提示信息
$rest = substr($contents, 3); // 截取除去BOM的部分内容
编程语言
- PHP批量检测并去除文件BOM头代码实例
- 微信 小程序Demo导入详细介绍
- Asp.net实现选择性的保留DataTable中的列
- zf框架的db类select查询器join链表使用示例(zend框架
- 解决php extension 加载顺序问题
- PHP大转盘中奖概率算法实例
- asp.net读取磁盘文件、删除实例代码
- NodeJs项目中关闭ESLint的方法
- PHP处理SQL脚本文件导入到MySQL的代码实例
- PHP中图片等比缩放的实例
- ThinkPHP3.1新特性之动态设置自动完成及自动验证示
- 一个常用的报表统计SQL语句
- PHP实现将textarea的值根据回车换行拆分至数组
- php简单计算权重的方法示例【适合抽奖类应用】
- php正确输出json数据的实例讲解
- Vue.js中的图片引用路径的方式