php批量檢測並去除BOM頭的程式碼
開發中會遇到BOM頭, 導致程式無法執行. 瀏覽器返回介面如下圖:
去除BOM頭解決方法:
<?php
ini_set('memory_limit','1024M');
function checkdir($basedir) {
if ($dh = opendir ( $basedir )) {
while ( ($file = readdir ( $dh )) !== false ) {
if ($file != '.' && $file != '..') {
if (! is_dir ( $basedir . "/" . $file )) { // 如果是檔案
echo "filename: $basedir/$file " . checkBOM ( "$basedir/$file" ) . " <br>";
} else {
$dirname = $basedir . "/" .$file; // 如果是目錄
checkdir ( $dirname );
}
}
}
closedir ( $dh );
}
}
function checkBOM($filename) {
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) { // BOM 的前三個字元的ASCII 碼分別為 239 187 191
if ($auto == 1) {
$rest = substr ( $contents, 3 );
rewrite ( $filename, $rest );
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
} else
return ("BOM Not Found.");
}
function rewrite($filename, $data) {
$filenum = fopen ( $filename, "w" );
flock ( $filenum, LOCK_EX );
fwrite ( $filenum, $data );
fclose ( $filenum );
}
$auto=1;
$dir='D:/web/';//專案檔案路徑
checkDir($dir);
?>
相關文章
- PHP 去除 bom 頭,JSON_decode () 返回 NULL,PHP 無法對字串做處理PHPJSONNull字串
- 檢測根目錄帶bom頭資訊的檔案
- php程式碼檢測工具使用PHP
- PHP程式碼自動檢測(git/svn整合PHP_CodeSniffer)PHPGit
- php檢測郵箱密碼PHP密碼
- 使用 Visual Studio 2019 批量新增程式碼檔案頭
- PHP二維陣列切割為字串並去除重複的值PHP陣列字串
- 關於PHP_CodeSniffer程式碼檢測引數學習記錄PHP
- PHP程式碼效能監測工具PHP
- laravel在檢視中使用php程式碼LaravelPHP
- 標準API展開BOM程式碼API
- 批量修改行尾註釋(程式碼規範檢查中)
- GUI成績檢測程式碼GUI
- java靜態程式碼檢測-pmdJava
- Python程式碼規範性檢測Python
- [PHP 安全] pcc —— PHP 安全配置檢測工具PHP
- 微信域名檢測批次檢測api介面分享(附上html程式碼)APIHTML
- php去除陣列中的鍵名PHP陣列
- TensorFlow Lite+OpenCV實現移動端水印的檢測與去除OpenCV
- win系統下git程式碼批量克隆,批量更新Git
- SOLIDWORKS高階BOM工具屬性匯入和批量操作Solid
- 資料 + 程式碼,基於 Keras 的煙火檢測Keras
- php 快取使用監控測試程式碼PHP快取
- php7連線mysql測試程式碼PHPMySql
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案
- 【Git系列教程-8】Pycharm將遠端倉庫如碼雲或Github程式碼克隆下來並迭代檢視 | 檢視提交的個個版本程式碼 | 碼雲上程式碼檢視技巧PyCharmGithub
- 檢測不同伺服器上程式碼差別的shell的指令碼伺服器指令碼
- 人員跌倒檢測攝像頭
- 去除字串中所有js,css程式碼類字串JSCSS
- 微信域名檢測 微信域名檢測官方介面的呼叫程式碼分享
- java程式碼審計人工漏洞檢測方法Java
- SAP中如何檢視BOM的修改記錄呢?
- PHP 並非好的入門程式語言PHP
- 一款檢測程式碼中TODO的eslint外掛EsLint
- [lua][openresty]程式碼覆蓋率檢測的解決方式REST
- unity 程式碼批量修改Remove Missing Script和批量修改指定元件的內容UnityREM元件
- 測試多分支開發對合並程式碼的影響
- 程式碼抬頭
- PHP 檢測銀行卡賬號PHP