Apabila mengimport fail .csv, kehadiran Tanda Pesanan Byte (BOM) boleh menyebabkan isu pengekodan . Berikut ialah penyelesaian komprehensif untuk mengalih keluar BOM daripada fail .csv yang diimport:
Isu:
Berjuang untuk mengalih keluar BOM menggunakan preg_replace atau str_replace.
Percubaan Kod:
<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv"; // ... $file = fopen($filepath, "r") or die("Error opening file"); // ...</code>
Penyelesaian:
<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>
Nota:
Fungsi FILE_PUT_CONTENTS menutup fail secara automatik, jadi tidak perlu menutupnya secara manual dengan fclose().
Dengan melaksanakan penyelesaian ini, anda boleh berjaya mengalih keluar BOM daripada fail .csv yang diimport dan memastikan penghuraian data yang betul.
Atas ialah kandungan terperinci Bagaimana untuk membuang Pengekodan BOM daripada Fail CSV dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!