.csv ファイルをインポートするときに、バイト オーダー マーク (BOM) が存在するとエンコードの問題が発生する可能性があります。インポートされた .csv ファイルから BOM を削除する包括的なソリューションは次のとおりです:
問題:
preg_replace または str_replace を使用して BOM を削除するのに苦労しています。
コードの試行:
<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv"; // ... $file = fopen($filepath, "r") or die("Error opening file"); // ...</code>
解決策:
<code class="php">// Read the file contents $content = file_get_contents($filepath); // Remove the BOM $content = str_replace("\xEF\xBB\xBF",'', $content); // Overwrite the file with the updated content file_put_contents($filepath, $content);</code>
<code class="php">function removeBomUtf8($s){ if(substr($s,0,3)==chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF'))){ return substr($s,3); }else{ return $s; } }</code>
注:
FILE_PUT_CONTENTS 関数は自動的にファイルを閉じるため、fclose() を使用して手動でファイルを閉じる必要はありません。
これらのソリューションを実装することで、インポートされた .csv ファイルから BOM を正常に削除し、正しいデータ解析を保証できます。
以上がPHP で CSV ファイルから BOM エンコーディングを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。