首頁 >後端開發 >php教程 >如何從 PHP 輸出中可靠地刪除 UTF-8 BOM 序列?

如何從 PHP 輸出中可靠地刪除 UTF-8 BOM 序列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 08:30:12708瀏覽

How to Reliably Remove UTF-8 BOM Sequences from PHP Output?

如何有效刪除多個UTF-8 BOM 序列

當遇到從PHP 範本檔案顯示原始HTML 輸出的問題時,必須解決UTF-8 BOM(位元組順序標記)序列的存在問題。此問題可能表現為 Firefox 無法接受輸出。

以下PHP 程式碼片段嘗試刪除BOM 序列,但可能不完全有效:

function fetch($name) {
    // ...
    if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
        $t = substr($t, 3);
    }
    return $t;
}

確保完全刪除對於所有BOM 序列,請考慮使用以下更穩健的方法:

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

此函數利用正規表示式(preg_replace) 來匹配和刪除字串開頭的UTF-8 BOM任何序列的實例 (/^$bom/)。透過確保刪除所有 BOM,輸出應該很容易被 Firefox 和其他瀏覽器接受。

以上是如何從 PHP 輸出中可靠地刪除 UTF-8 BOM 序列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn