如何有效刪除多個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中文網其他相關文章!