檢查目錄下php檔案是否含有bom

2021-07-28 17:47:03 字數 893 閱讀 8564

類似windows自帶的記事本等軟體,在儲存乙個以utf-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xef 0xbb 0xbf,即bom)。它是一串隱藏的字元,用於讓記事本等編輯器識別這個檔案是否以utf-8編碼。對於一般的檔案,這樣並不會產生什麼麻煩。但對於 php來說,bom是個**煩。

php並不會忽略bom,所以在讀取、包含或者引用這些檔案時,會把bom作為該檔案開頭正文的一部分。根據嵌入式語言的特點,這串字元將被直接執行(顯示)出來。由此造成即使頁面的 top padding 設定為0,也無法讓整個網頁緊貼瀏覽器頂部,因為在html一開頭有這3個字元呢!

最大的麻煩還不是這個。受cookie送出機制的限制,在這些檔案開頭已經有bom的檔案中,cookie無法送出(因為在cookie送出前php已經送出了檔案頭),所以登入和登出功能失效。一切依賴cookie、session實現的功能全部無效。

去除bom,把如下的**儲存為tool.php,放到目標目錄,然後在瀏覽器訪問tool.php即可。 

<?php

/** * 去除bom頭資訊

*/header("content-type:text/html; charset=utf-8");

if (isset($_get['dir'])) else

$auto = 1;//是否自動移除發現的bom資訊。1為是,0為否。

checkdir($basedir);

function checkdir($basedir) else } }

closedir($dh);

}}function checkbom($filename) else

}else return ("沒有發現bom");

}function rewrite($filename, $data)

php讀取目錄下的檔案

工作需要寫了乙個讀取指定目錄下的檔案,並顯示列表,點選之後讀取檔案中的內容 高手拍磚,目錄可以自由指定,我這裡直接寫的是獲取當前檔案目錄下面的所有檔案 讀取指定目錄下面的檔案內容 author administrator class catlog public function test 獲取指定目...

PHP刪除目錄及目錄下所有檔案

函式 php刪除目錄及目錄下所有檔案 功能 php操作檔案。刪除指定目錄及 或 該目錄下的所有檔案。語言 php 函式 一 刪除目錄及目錄下的所有檔案?12 3 4 56 7 8 910 11 12 13 14 15 16 17 18 19 20 21 22 23 24 functiondelfil...

函式 PHP刪除目錄及目錄下所有檔案

函式 一 刪除目錄及目錄下的所有檔案 迴圈刪除目錄和檔案函式 function deldirandfile dirname else closedir handle if rmdir dirname echo 成功刪除目錄 dirname n 函式 二 僅刪除指定目錄下的檔案,不刪除目錄資料夾。迴圈...