ホームページ > バックエンド開発 > PHPチュートリアル > Web サイト ファイルのバッチ コード変換_PHP チュートリアル

Web サイト ファイルのバッチ コード変換_PHP チュートリアル

WBOY
リリース: 2016-07-14 10:06:41
オリジナル
1084 人が閲覧しました

引用: データベースの要件により、データのやり取りを容易にし、一貫性のないエンコーディングによって引き起こされる問題を軽減するために、データベースは元の gbk2312 エンコーディングから utf-8 に変更されました。

Webサイト全体をトランスコードする必要があります(gb2312-->utf-8)

1 オンラインでバッチ コード変換ツールを見つける

注: 1. このソフトウェアは、ファイルまたはディレクトリの選択をサポートしています。いくつかのオプションの種類またはすべてのファイルがあります。これは便利ですが、注意が必要です。選択したファイルの中に、エンコードが異なるファイルや画像など、トランスコードする必要のないファイルがないか確認してください。一緒にトランスコードしないように注意してください。

2. 複製機能はないので、ファイルを繰り返し選択しないように注意してください(繰り返し選択するとどうなるか、試してみます)

3. 「ファイルのバックアップを保持する」にチェックを入れると、各ファイルに対応する bak ファイルが生成されます。私のプロジェクトは git で管理されているため、バックアップの必要はありません (git 自体に復元機能があります)。方法は詳細によって異なりますが、とにかくこの大きな動きには注意が必要です。

2. bom
を削除します EditPlus エディターを使用して、トランスコードしたファイルを開きます。下部のステータス バーには、エンコードが「UTF-8+」であることが表示されます。これは、BOM ヘッダーが含まれていることを意味します。
BOM とは何ですか? ネットユーザーの引用: 「UTF-8 エンコードされたファイルでは、BOM はファイルのヘッダーにあり、3 バイトを占め、ファイルが UTF-8 エンコードに属していることを示すために使用されます。BOM を認識するソフトウェアは数多くあります。ヘッダーを認識できますが、BOM ヘッダーを認識できないものもあります。たとえば、PHP が BOM ヘッダーを認識できないのは、メモ帳で UTF-8 エンコーディングを編集した後にエラーが発生する理由でもあります。

PHP がプログラムを実行したときにコンテンツとして出力されます。

単一ファイルの場合は、editplus エディターを使用してファイルを開き、「utf-8」なし (つまり、BOM なし) のファイルとして保存します。

非常に多くのファイルについて、一部のネチズンは BOM ヘッダーをバッチで迅速かつ正確に削除し (元の作成者は見つかりませんでした。共有してくれてありがとう~)、トランスコードされたファイルのルート ディレクトリに php ファイルを作成するスクリプトを共有しました。以下のコードをURLにアクセスアドレスを入力して実行してください:

if (isset($_GET['dir'])){ //设置文件目录
$basedir=$_GET['dir'];  
}その他{
$basedir = '.';  
}
$auto = 1;  
checkdir($basedir);  
関数 checkdir($basedir){
if ($dh = opendir($basedir)) {
  while (($file = readdir($dh)) !== false) {
   if ($file != '.' && $file != '..'){
    if (!is_dir($basedir."/".$file)) {
     echo "ファイル名: $basedir/$file ".checkBOM("$basedir/$file")."
";  
    }その他{
     $dirname = $basedir."/".$file;  
     チェックディレクトリ($ディレクトリ名);  
    }
   }
  }
閉じられたir($dh);  
}
}
関数 checkBOM ($filename) {
グローバル $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);  
   書き換え ($filename, $rest);  
   return ("BOM が見つかりました。自動的に削除されました。_http://www.k686.com" );  
  } その他 {
   return ("BOM が見つかりました。");  
  }
}
それ以外の場合は戻ります (「BOM が見つかりません。」);  
}
関数書き換え ($filename, $data) {
$filenum = fopen($filename, "w");  
flock($filenum, LOCK_EX);  
fwrite($filenum, $data);  
fclose($filenum);  
}
?>
三、大規模な ZendSdio 批准代替 htm 中の申し立ての gb2312 のコードは utf-8 を使用します

注意: 新規建設の zend 工程、查看 htm が正常であるかどうか表示、結果が乱数である場合、查看工程 htm の编码が utf-8 に設定されているかどうか、 选中工程、全局搜索(ctrl+H)“charset=gb2312”批准量は“charset”になります=utf-8”,

注意: 特定のファイルが外部に取り込まれている可能性があるため、gb2312 として申請しておく必要があるため、これらの例外を除外する必要があり、置き換えることはできませんが、今回コード化されたファイルについては置き換える必要があります。

また、「charset= gb2312」、空格、さまざまな写法都搜一搜などの空格が存在する可能性もあります。

4 つ目は、php ファイルの gb2312 (または gbk) であり、utf8、utf-8、gbk、gb2312 などのさまざまな書法も常にチェックされます。

 


http://www.bkjia.com/PHPjc/477921.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477921.html技術記事引き: データパッケージの要求により、データパッケージが原gbk2312 の修正により utf-8 に変更され、データ通信の便宜のため、コード不一致を引き起こす問題があり、网站整站转码 (gb2312--utf-8) が必要です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート