PHPでUTF8エンコーディングを使用してファイルをインポートするときに空白行が表示される問題に遭遇する人は多いかもしれません。ここで引用ファイルの空白行の解決策を紹介します。
参照されたファイルは、他のファイルを参照する include および require_once によって生じる空白行を参照します
これは実際にはメモ帳で UTF-8 ファイルを編集した後です。まだ UTF-8 形式で保存していますが、システムは自動的に 2 つの BOM タグをファイルに追加しますが、IE は 1 つだけを無視でき、もう 1 つは BOM タグです。空白行。
解決策は次のとおりです:
UTF-8 ファイルの編集にはメモ帳を使用しないでください。Dreamw、EmEditor、Visual Studio 2008 などの他の編集ツールを使用して UTF-8 ファイルを編集し、保存してください。
メモ帳で 2 つのサイトを編集した後、最初は CSS 設定の問題かと思いましたが、BOM タグが原因であることが判明しました。
別の方法もあります。このようなファイルが多数ある場合は、php 関数を使用して実行できます
次のコードを PHP ファイルにコピーし、BOM ヘッダーをクリアする必要があるディレクトリに配置して実行すると、PHP の空白の最初の行をバッチでクリアできます。
コードは次のとおりです |
コードをコピー |
if (isset($_GET['dir'])){ //ファイルディレクトリを設定します
$basedir=$_GET['ディレクトリ']
}その他{
$basedir = '.';
}
$auto = 1;
チェックディレクトリ($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
checkdir($dirname);
}
}
}
閉じられた($dh);
}
}
関数 checkBOM ($filename) {
グローバル $auto
$contents = ファイル_get_contents($ファイル名);
$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 が見つかりました。自動的に削除されました。");
} その他 {
Return ("BOM が見つかりました。");
}
}
それ以外の場合は戻ります (「BOM が見つかりません。」)
}
関数の書き換え ($filename, $data) {
$filenum = fopen($filename, "w");
群れ($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
http://www.bkjia.com/PHPjc/632081.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/632081.html
| 技術記事
PHP でファイルが UTF8 でエンコードされている場合、ファイルをインポートすると空白行が表示されるという問題に遭遇する人は多いと思います。ここで引用ファイルの空白行の解決策を紹介します。 引用...