CSV ファイルをインポートする場合、バイト オーダー マーク (BOM) 文字によって問題が発生することがあります。 BOM は、ファイルで使用されている文字エンコーディングを識別する 3 バイトのシーケンスです。ただし、一部のアプリケーションでは BOM 文字が正しく処理されず、予期しない結果が生じる可能性があります。
指定されたコードでは、問題は次の点にあります。 preg_replace('/') と str_replace を使用します。これらの関数は文字列から特定の文字を削除する場合には効果的ですが、BOM 文字の処理には適していない可能性があります。 BOM 文字には特定のバイト シーケンスがあり、これらの関数を使用して特定のバイト値をターゲットにすると、常に一貫して機能するとは限りません。
BOM 文字を効果的に削除するには、次の使用を検討してください。 BOM バイト シーケンスを特にターゲットとするカスタム関数。関数の例を次に示します。
<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>
この関数を使用するには、データを処理する前にファイルの内容に適用します。
<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv"; $content = file_get_contents($filepath); $content = removeBomUtf8($content);</code>
BOM を削除した後を選択すると、意図したとおりにデータ処理を続行できます。ただし、スクリプトの残りの部分が、BOM の削除によって行われた変更と互換性があることを確認することが重要です。
以上がPHP で CSV ファイルから BOM 文字を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。