ホームページ >バックエンド開発 >PHPチュートリアル >PHP 出力から UTF-8 BOM シーケンスを確実に削除する方法

PHP 出力から UTF-8 BOM シーケンスを確実に削除する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-08 08:30:12681ブラウズ

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) を利用して、文字列 (/^$bom/) の先頭にある UTF-8 BOM シーケンスのインスタンスを照合して削除します。すべての BOM を確実に削除することで、出力は Firefox やその他のブラウザーですぐに受け入れられるようになります。

以上がPHP 出力から UTF-8 BOM シーケンスを確実に削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。