ホームページ >バックエンド開発 >PHPチュートリアル >UTF-8 ファイルの BOM ヘッダーを一括削​​除およびクリアするための PHP コード例_PHP チュートリアル

UTF-8 ファイルの BOM ヘッダーを一括削​​除およびクリアするための PHP コード例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:32:45868ブラウズ

失敗の問題を避けるために、コードを実行する前に必ずファイルをバックアップしてください。

コード 1:

コードをコピーします コードは次のとおりです:

function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset [1] = substr($contents, 0, 1);
charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
$contents、3);
戻ります ("< ;font color=red>BOM が見つかりました。");


コード 2:




コードをコピーします

コードは次のとおりです:

header('content-Type: text/html; charset=utf-8');
if(isset($_GET['dir'])){ //ファイルディレクトリを設定しない場合は設定しますset を指定すると、現在のファイルが存在するディレクトリに自動的に設定されます
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;/* BOM 検出と削除を示す場合は 1 に設定し、BOM 検出のみを実行し、削除しない場合は 0 に設定します */

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:




コードをコピー

コードは次のとおりです:


##把该文件放在需求去除BOM头的目录下跑一下却可。
if (isset ( $_GET ['dir'] )) { // config the basedir
$basedir = $_GET ['dir'];
} else {
$basedir = '.';
}

$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

コードをコピーします

コードは次のとおりです:


#!/usr/bin/env python
#-*- コーディング: utf-8 -*-

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()

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/754341.html技術記事実行コードは、失われる問題を避けるために、ファイルを次に置くように設定されています。 $contents = fil...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。