PHP で UTF-8 に付いている BOM を削除する方法

  UTF-8 に BOM (Byte Order Mark) が付くのが良いのか,悪いのかは分からないけど,問題が多そうな気がする.
  Windows に付いているメモ帳はご丁寧に BOM をつけてくる.

- When a BOM is used, is it only in 16-bit Unicode text?
  http://www.unicode.org/unicode/faq/utf_bom.html#25

  上記の記事によると,ファイルの先頭 3 バイトに EF BB BF があれば,UTF-8 に付く BOM らしいので,これを判別して削除する方法.

function delete_bom($str)
{
    if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
        $str = substr($str, 3);
    }
    return $str;
}


  とりあえずこれで OK.