91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何實現UTF-8文件BOM自動檢測與移除實例

發布時間:2021-06-25 14:27:22 來源:億速云 閱讀:201 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關PHP如何實現UTF-8文件BOM自動檢測與移除實例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

本文實例講述了PHP實現UTF-8文件BOM自動檢測與移除的方法。分享給大家供大家參考。具體實現方法如下:

BOM信息是文件開頭的一串隱藏的字符,用于讓某些編輯器識別這是個UTF-8編碼的文件。但PHP在讀取文件時會把這些字符讀出,從而形成了文件 開頭含有一些無法識別的字符的問題。

比如用UTF-8格式保存的生成圖片的PHP文件,因為文件頭隱藏的BOM信息也被下發,導致生成的 圖片數據不對,瀏覽器無法識別。

要檢測一個UTF-8文件是否含有BOM信息,就是檢測文件開頭的字三個符,是否為0xEF, 0xBB, 0xBF。下面這個小程序,用戶遍歷某個目錄下所有文件,并檢測是否加了BOM。

<?php
//此文件用于快速測試UTF8編碼的文件是不是加了BOM,并可自動移除
//By Bob Shen

$basedir="."; //修改此行為需要檢測的目錄,點表示當前目錄
$auto=1; //是否自動移除發現的BOM信息。1為是,0為否。

//以 下不用改動

if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
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) {
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);
}

將以上代碼另存為del_bom.php,修改需要檢測的目錄后運行。這樣可能有助于檢測是哪個文件帶有了BOM信息導致所有頁面開頭都有 那么一段空白。

把下面 代碼保存為 bom.php  記得保存為 utf8 格式

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<h4><?echo $_POST["dir"];?>目錄下的檢測結果</h4>
<?php
//此文件用于快速測試UTF8編碼的文件是 不是加了BOM,并可自動移除
//By bob 老大
//風吟修改
$目錄= str_replace(" ", "|", $_POST["dir"]);//接受提交的路徑數據
$basedir="$目錄"; //修改此行為需要檢測的目錄,點表示當前目錄
$auto=1; //是否自動移除發現的BOM信息。1為是,0為否。
//以下不用改動
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
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) {
if ($auto==1) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>--Bom 已經清除完畢。</font>");
} else {
return ("<font color=red>--Bom found.</font>");
}
}
else return ("--沒有檢查到Bom.");
}
function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>

<form action="" method="POST">
目錄: <input type="text" name="dir" />
<input type="submit" value="檢測目錄" >
</form>
請 輸入文件夾名比如 plugin/fanfou 后面不需要加/。如果要檢測根目錄輸入“ . ”  . 是小數點 提交既可
</br>

感謝各位的閱讀!關于“PHP如何實現UTF-8文件BOM自動檢測與移除實例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜川市| 三明市| 巫溪县| 盐山县| 岐山县| 玉环县| 吴忠市| 新宁县| 扎赉特旗| 宝坻区| 富平县| 延吉市| 双鸭山市| 会理县| 中阳县| 莆田市| 安乡县| 桂平市| 乐昌市| 汕头市| 寻乌县| 登封市| 肇东市| 呼伦贝尔市| 波密县| 柳州市| 芜湖市| 宜川县| 广水市| 克山县| 仁寿县| 齐河县| 景东| 寻乌县| 木里| 百色市| 格尔木市| 平南县| 伊通| 建瓯市| 雷山县|