PHP批量检测并去除文件BOM头代码实例

网络编程 2025-03-14 12:48www.168986.cn编程入门

关于文件头信息中的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的部分内容

上一篇:微信 小程序Demo导入详细介绍 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by