檢測根目錄帶bom頭資訊的檔案
新建bom.php檔案,複製以下程式碼儲存。然後把檔案放到根目錄下,在瀏覽器訪問檢測是否有帶bom頭資訊的檔案存在:http://你的域名/bom.php?auto=0
如果想清除的話,請訪問:http://你的域名/bom.php?auto=1
<?php
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
$basedir=$_GET['dir'];
}else{
$basedir = '.';
}
$autoval = !empty($_GET['auto']) ? $_GET['auto'] : 0;
$auto = $autoval;
$num = 0;
$str = '';
checkdir($basedir, $str, $num);
if (0 < $num) {
$str = '檢測有'.$num.'個檔案帶有BOM頭部資訊 <br>'.$str;
}
echo $str;
exit;
function checkdir($basedir, &$str = '', &$num = 0){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
$return = checkBOM("$basedir/$file", $num);
if (0 == $return['code']) {
$str .= "filename: $basedir/$file ";
$str .= $return['msg']." <br>";
}
}else{
$dirname = $basedir."/".$file;
checkdir($dirname, $str, $num);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename, &$num = 0) {
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) {
$num++;
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return [
'code' => 0,
'msg' => "<font color=red>BOM found, automatically removed.</font>",
];
} else {
return [
'code' => 0,
'msg' => "<font color=red>BOM found.</font>",
];
}
} else {
return [
'code' => 1,
'msg' => "BOM Not Found.",
];
}
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
相關文章
- PHP檔案頭BOM頭問題PHP
- 檢視BAM檔案頭部資訊
- 列出並排序檔案系統根目錄(/)下各個目錄的大小排序
- php批量檢測並去除BOM頭的程式碼PHP
- PE檔案檢測DOS頭\NT頭
- Lnmp 網站根目錄檔案許可權LNMP網站
- php在網站根目錄下寫檔案PHP網站
- Scrapy:根據目錄來下載github上的檔案Github
- solaris10_快速檢視哪些目錄或檔案佔用根分割槽_方法
- .Net引用根目錄子資料夾下的dll檔案
- 解析Linux系統根檔案系統的目錄樹Linux
- LINUXdu檢視目錄和檔案大小Linux
- pycharm如何檢視python檔案的工作目錄PyCharmPython
- webloginc配置專案根目錄Web
- 如何在 Laravel 裡直接輸出根目錄下的 HTML 檔案LaravelHTML
- 解析Linux系統根檔案系統的目錄樹(轉)Linux
- 目錄結構檢視及目錄下各個檔案的大小的統計
- nodejs獲取檔案資訊,判斷是檔案或目錄NodeJS
- 關於onethink 目錄,檔案讀寫檢測函式中的問題函式
- 配置vuter的根目錄
- Linux中如何檢視目錄下的檔案大小?Linux
- 檢查DB2 include目錄下的.h檔案DB2
- Linux檢視當前目錄下的檔案大小Linux
- 沒有目錄建目錄,沒有檔案建檔案
- 詳解BOM頭以及去掉BOM頭的方法
- nginx配置web訪問以及檢視目錄檔案NginxWeb
- 不帶Anchors和NMS的目標檢測
- Oracle檔案頭資訊(zt)Oracle
- 硬碟根目錄裡的Msdia80.dll檔案是幹什麼用的硬碟
- VUE - 配置根目錄(用@代表src目錄)Vue
- 18、檔案與目錄
- 清理bdump目錄檔案
- 在JUnit中使用@Rule測試檔案和目錄
- 8.var目錄下的檔案和目錄詳解
- js獲取網站根路徑(站點及虛擬目錄),獲得網站的根目錄或虛擬目錄的根地址JS網站
- 企業生產案例:批量建立目錄並移動帶日期檔案到相應目錄
- 【LINUX學習】檢視磁碟與目錄的資訊Linux
- 修改Tomcat的網站根目錄與虛擬目錄Tomcat網站