Cara Mengeluarkan Berbilang Urutan BOM UTF-8 dengan Berkesan
Apabila menghadapi masalah dengan memaparkan output HTML mentah daripada fail templat PHP, adalah penting untuk menangani kehadiran urutan UTF-8 BOM (Byte Order Mark). Isu ini boleh nyata kerana Firefox tidak dapat menerima output.
Coretan kod PHP berikut cuba mengalih keluar jujukan BOM tetapi mungkin tidak berkesan sepenuhnya:
function fetch($name) { // ... if (substr($t, 0, 3) == b'\xef\xbb\xbf') { $t = substr($t, 3); } return $t; }
Untuk memastikan pengalihan keluar sepenuhnya daripada semua jujukan BOM, pertimbangkan untuk menggunakan pendekatan yang lebih mantap berikut:
function remove_utf8_bom($text) { $bom = pack('H*','EFBBBF'); $text = preg_replace("/^$bom/", '', $text); return $text; }
Fungsi ini menggunakan ungkapan biasa (preg_replace) untuk memadankan dan mengalih keluar sebarang contoh urutan BOM UTF-8 pada permulaan rentetan (/^$bom/). Dengan memastikan penyingkiran semua BOM, output harus mudah diterima oleh Firefox dan penyemak imbas lain.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Urutan BOM UTF-8 dengan Amanah daripada Output PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!