Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengalih Keluar Berbilang Urutan BOM UTF-8 daripada Fail Templat PHP?

Bagaimanakah Saya Boleh Mengalih Keluar Berbilang Urutan BOM UTF-8 daripada Fail Templat PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 20:05:12628semak imbas

How Can I Reliably Remove Multiple UTF-8 BOM Sequences from PHP Template Files?

Menghapuskan Berbilang Urutan UTF-8 BOM

Sebagai tindak balas kepada isu mengeluarkan HTML mentah daripada fail templat menggunakan PHP5, di mana penyingkiran Byte Order Mark (BOM) tidak menyelesaikan keserasian Firefox, penyelesaian yang lebih komprehensif telah dikenal pasti.

Apabila cuba mengalih keluar BOM, kod yang diberikan:

if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
    $t = substr($t, 3);
}

hanya menangani penyingkiran satu jujukan BOM. Walau bagaimanapun, untuk memastikan keserasian dengan Firefox, adalah perlu untuk menghapuskan semua kejadian BOM.

Kod Semakan untuk Pembuangan BOM

Untuk mengalih keluar berbilang jujukan BOM UTF-8 , kod berikut disyorkan:

function remove_utf8_bom($text)
{
    $bom = pack('H*','EFBBBF');
    $text = preg_replace("/^$bom/", '', $text);
    return $text;
}

Penjelasan tentang Kod

  • pack('H*','EFBBBF'): Baris ini mencipta perwakilan rentetan binari BOM UTF-8.
  • preg_replace("/^ $bom/", '', $text): Baris ini menggunakan ungkapan biasa untuk mencari dan mengalih keluar semua kejadian bagi jujukan BOM pada permulaan rentetan (^ menandakan permulaan rentetan).

Dengan melaksanakan kod ini, fail templat akan dipaparkan dengan betul, menyelesaikan isu keserasian dengan Firefox.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Berbilang Urutan BOM UTF-8 daripada Fail Templat 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