PHPでファイルのMIMEタイプを検出する方法(PHP 5.2のほとんどのインストールで可能ですが、これまでも積極的に開発されています)を探しています。PHPでMIMEタイプを検出する
私はmime_content_type()
メソッドとFileinfo拡張機能を認識していますが、mime_content_type()
は信頼できず、推奨されておらず、Fileinfoは "標準" PHP(5.2)インストールには含まれていません。
他にもオプションがありますか?
PHPでファイルのMIMEタイプを検出する方法(PHP 5.2のほとんどのインストールで可能ですが、これまでも積極的に開発されています)を探しています。PHPでMIMEタイプを検出する
私はmime_content_type()
メソッドとFileinfo拡張機能を認識していますが、mime_content_type()
は信頼できず、推奨されておらず、Fileinfoは "標準" PHP(5.2)インストールには含まれていません。
他にもオプションがありますか?
このPEARパッケージを調べましたか?
あなたは、MIMEタイプをそのように取得するには、ヘッダーを解析し、その後、あなたが実行しているWebサーバへサブリクエストを行うことができます。これは遅いので、curlを使用してヘッダーを取得するのは、完全な要求ではありません。大きなファイルを見ている場合は、これが重要です。
Apacheを実行し、phpをモジュールとして使用している場合は、VIRTUAL関数を見てください。カールを使うよりも、サブリクエストを行うのがより速い方法です。
それ以外の場合は、MIMEタイプを拡張子で検索できます。これにより、すべての名前の付いたファイルが機能します。
それは* nixのサーバの場合は、ファイルコマンドを使用することができます(笑残念私は私が仕上げたようこれがまあいい。ヶ月前に頼まれました。同様にこれを加えるかもしれない...実現)。
file -bi <filepath>
PHPで「exec」を使用してください私はあなたがパス文字列をエスケープし、出力をフォーマットする必要がある場合がありますので、私はそれをテストしていない
$content_type = exec("file -bi " . escapeshellarg($filepath));
ので、これで私を引用していないPHPに新しいけど...ね。
他の方法よりも信頼性が高い場合は、Dunnoを使用してください。
ありがとうございました。理想的ではありません。実際には、私がすでに言及した2つの方法、つまりすべてのシステム(Windows)で作業していないもう1つの方法を使用しようとしています。当面。 –