Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuang Pengekodan BOM daripada Fail CSV dalam PHP?

Bagaimana untuk membuang Pengekodan BOM daripada Fail CSV dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 15:39:02799semak imbas

How to Remove BOM Encoding from CSV Files in PHP?

Mengalih keluar BOM () daripada Fail .csv yang Diimport

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:

  1. Gunakan fungsi file_get_contents() dan file_put_contents() untuk membaca dan menulis ganti fail dengan BOM dialih keluar:
<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>
  1. Gunakan fungsi tersuai untuk mengesan dan mengalih keluar 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>
  1. Buka semula fail dan proseskannya seperti sebelum ini.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn