ホームページ >バックエンド開発 >PHPチュートリアル >UTF-8 ファイルの BOM ヘッダーを一括削除およびクリアするための PHP コード例_PHP チュートリアル
失敗の問題を避けるために、コードを実行する前に必ずファイルをバックアップしてください。
コード 1:
echo '検索中の現在のディレクトリは '.$basedir.' 現在の設定は ';
echo $auto?' ファイル BOM を検出し、検出された BOM ファイルの BOM を削除します
'ファイル BOM を検出するだけで、BOM 削除操作は実行されません
';
checkdir($basedir);
function checkdir($basedir){
if($dh=opendir($basedir)){
while (($file=readdir($dh)) !== false){
if( $ file!= '。&& $' .. ') }
} l Closedir ($ dh);
}}}
Function Checkbom ($ FILENAME) {
Global $ Auto; ARSET [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 が見つかりました');
}
}else{
return (' BOM が見つかりません');
「わ」 );
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>
コード 3:
コードをコピー
コードは次のとおりです:
$auto = 1;
checkdir ( $basedir );
function checkdir($basedir) {
if ($dh = opendir ( $basedir )) {
while ( ($file = readdir ( $dh )) !== false ) {
if ( $ file! = '.' && $ file! = '..') {
if (! IS_DIR ($ Basedir. "/". $ File) {// file " . checkBOM ( "$basedir/$file" ) . "
";
ir($dirname) ; // Recursive
function checkBOM($filename) {
global $auto;
$contents = file_get_contents ($filename);
$charset [1] = substr ($contents, 0, 1);
$charset [2] = substr ( $ content, 1, 1 );
$charset [3] = substr ( $contents, 2, 1 );
if (ord ( $charset [1] ) == 239 && ord ( $charset [2] ) == 187 && ORD ($ Charset [3]) == 191) {// bom
// ASCII
// コードの最初の 3 文字は
// 239
// 187
// 191
if ($ Auto ($ Auto == 1) {$ REST = substr ($ Contents, 3);
REWRITE ($ FILENAME, $ REST);
Return ("& LT; FONT color = red & gt; bom が見つかりました。& lt; /font & gt; " ; $filename, $data) {
$filenum = fopen ($filename, "w");
flock ($filenum, LOCK_EX);
fwrite ($filenum, $data);
fclose ( $filenum);
}
?>
2. Python コードをコピーします コードは次のとおりです:
OSをインポート
def delBOM():
file_count = 0
bom_files = []
os.walk('.') の dirpath、dirnames、filenames の場合:
if(len(filenames)):
filenames のファイル名の場合:
file_count += 1
file = open(dirpath + "/" + filename, 'r+')
file_contents = file.read()
if(len(file_contents) > 3):
if(ord(file_contents[0]) == 239 および ord(file_contents[1]) == 187 および ord(file_contents[2]) == 191):
bom_files.append(dirpath + "/" + filename)
file.seek(0)
file.write(file_contents[3:])
print bom_files[-1], "BOM が見つかりました。削除されました。"
file.close( )
print file_count, "ファイルが見つかりました。", len(bom_files), "ファイルに bom があります。削除されました。"
if __name__ == "__main__":
delBOM()