php代码展开收缩bom表,史上最牛逼的文件bom头清除代码,万能检测清除php,js等等...

这篇博客提供了一个PHP脚本,用于自动检测并移除网站根目录及其子目录中PHP文件的UTF8 BOM头,解决了因BOM头导致的错误和错位问题。脚本能够递归扫描文件夹,并对含有BOM头的文件进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标签:

做php开发,经常部分uft8的php文件因BOM头不同导致各种错误和错位。网上搜到的大部分所谓的去处bom工具都是2货,没有能用的。下面的一段代码,请复制到一个php文件里,然后上传到你的网站根目录下,然后前台访问,他会自动将站点下所有目录及子目录里的各种文件的bom干掉,会自动判断的哟。

// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)

$HOME = dirname(__FILE__);

// 如果是Windows系统,修改为:$WIN = 1;

$WIN = 0;

?>

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

UTF8 BOM 清除器

body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }

.FOUND { color: #F30; font-size: 14px; font-weight: bold; }

$BOMBED = array();

RecursiveFolder($HOME);

echo ‘

These files had UTF8 BOM, but i cleaned them:

‘;

foreach ($BOMBED as $utf) { echo $utf ."
\n"; }

echo ‘

‘;

// 递归扫描

function RecursiveFolder($sHOME) {

global $BOMBED, $WIN;

$win32 = ($WIN == 1) ? "\\" : "/";

$folder = dir($sHOME);

$foundfolders = array();

while ($file = $folder->read()) {

if($file != "." and $file != "..") {

if(filetype($sHOME . $win32 . $file) == "dir"){

$foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;

} else {

$content = file_get_contents($sHOME . $win32 . $file);

$BOM = SearchBOM($content);

if ($BOM) {

$BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;

// 移出BOM信息

$content = substr($content,3);

// 写回到原始文件

file_put_contents($sHOME . $win32 . $file, $content);

}

}

}

}

$folder->close();

if(count($foundfolders) > 0) {

foreach ($foundfolders as $folder) {

RecursiveFolder($folder, $win32);

}

}

}

// 搜索当前文件是否有BOM

function SearchBOM($string) {

if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;

return false;

}

?>

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值