您好,登錄后才能下訂單哦!
<?php
header("Content-type:text/html;charset=utf-8");
// 默認是當前目錄
$basedir = '.';
// 是否自動去掉 BOM 頭,默認不去除(0表示不去1表示去)
$auto = 0;
/*
* 函數名:checkDir
* 說明:檢查目錄及文件是否包含BOM頭
*/
function checkDir($basedir){
// opendir函數獲取打開目錄句柄
if($dh = opendir($basedir)) {
// readdir函數返回目錄中下一個文件的文件名
while(($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
// is_dir函數檢查指定的文件是否是目錄
if(!is_dir($basedir."/".$file)) {
// 調用檢查文件內容是否包含BOM的函數
echo "文件名 $basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else {
$dirname = $basedir."/".$file;
// 遞歸調用
checkDir($dirname);
}
}
}
// 關閉目錄句柄
closedir($dh);
}
}
/*
* 函數名:checkBOM
* 說明:檢查文件內容是否包含BOM
*/
function checkBOM($filename) {
global $auto;
// file_get_contents() 函數把整個文件讀入一個字符串中
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
// ord函數返回字符串的首個字符的 ASCII 值
if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if($auto == 1) {
// substr() 函數返回字符串的一部分,截圖除了前三個字符的其他內容
$rest = substr($contents, 3);
// 調用重寫文件函數
rewrite ($filename, $rest);
return "BOM 找到, 自動刪除";
} else {
return "找到BOM";
}
}else{
return "BOM 沒有找到";
}
}
/*
* 函數名:rewrite
* 說明:向指定文件寫指定的內容
*/
function rewrite($filename, $data){
// fopen() 函數打開文件或者URL,"w"表示寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建
$file = fopen($filename, "w");
// flock() 函數鎖定或釋放文件,"LOCK_EX"表示要取得獨占鎖定(寫入的程序)
flock($file, LOCK_EX);
// fwrite() 函數寫入文件
fwrite($file, $data);
// fclose() 函數關閉一個打開文件
fclose($file);
}
// 調用檢查目錄及文件是否包含BOM頭函數
checkDir($basedir);
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。