Fileinfoとmagic.mime
MIME Content-typeを判別しようと思い、mime_content_typeという関数を発見。しかしながら非推奨。PECLのFileinfoを使えとのこと。
早速php.iniを書き換え、Fileinfoを組み込んでみた。Windowsなので、別途magic.mimeというファイルも必要になり、Debian GNU/Linuxのfileパッケージから拝借。
…finfo_open()の時点でエラーが出て判別どころじゃないYO!
まず、magic.mimeへのパスは「.mime」を含まないようにしなければならないようだ。意味がわからん。とりあえず警告は出なくなった。
が、やはりfinfo_open()がFALSEで進めない。
magic.mimeがテキストじゃなくて、コンパイルしたやつが必要なのかな?と思ってmagic.mime.mgcに入れ替えたりしてもダメ。
バグトラックに似たような問題があったので、ひたすら読む。
すると「4つのファイルを入れたら動いたよ」みたいな書き込みがあった。もう一度、fileパッケージからそれらしきファイル4つを拝借。
動いた!
最終的に、magicファイルとmagic.mimeファイルの2つで動くことを確認。なんなんだ一体。