Apabila mengimport fail CSV, aksara Byte Order Mark (BOM) kadangkala boleh menyebabkan masalah. BOM ialah jujukan tiga bait yang mengenal pasti pengekodan aksara yang digunakan dalam fail. Walau bagaimanapun, sesetengah aplikasi mungkin tidak mengendalikan aksara BOM dengan betul, membawa kepada hasil yang tidak dijangka.
Dalam kod yang diberikan, isunya terletak pada menggunakan preg_replace('/') dan str_replace. Walaupun fungsi ini boleh berkesan untuk mengalih keluar aksara tertentu daripada rentetan, ia mungkin tidak sesuai untuk mengendalikan aksara BOM. Aksara BOM mempunyai jujukan bait tertentu dan menggunakan fungsi ini untuk menyasarkan nilai bait tertentu mungkin tidak sentiasa berfungsi secara konsisten.
Untuk mengalih keluar aksara BOM dengan berkesan, pertimbangkan untuk menggunakan fungsi tersuai yang secara khusus menyasarkan jujukan bait BOM. Berikut ialah contoh fungsi:
<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>
Untuk menggunakan fungsi ini, gunakannya pada kandungan fail sebelum memproses data:
<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv"; $content = file_get_contents($filepath); $content = removeBomUtf8($content);</code>
Selepas mengalih keluar BOM , anda boleh meneruskan pemprosesan data seperti yang dimaksudkan. Walau bagaimanapun, adalah penting untuk memastikan bahawa skrip yang lain masih serasi dengan sebarang pengubahsuaian yang dibuat akibat pengalihan keluar BOM.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Aksara BOM daripada Fail CSV dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!