12

PHP 5.3.5 および IIS 6 を使用する Windows Server 2003 で実行されている PHP スクリプトで finfo_open を呼び出すのに問題があります。呼び出しは常に Fatal error: Call to undefined function finfo_open() in... を返します。

少し読んだだけで、fileinfo機能がWindows PHPインストールにデフォルトで含まれていないことがわかりましたが、何も試しても機能しませんでした。ここのコメント #3 の指示: http://www.php.net/manual/en/fileinfo.installation.phpは役に立ちませんでした。これは、私が見つけることができる最も公式に見える説明です。Web には mime_magic dll が必要であるという情報がたくさんありますが、これは 5.3 から不要になったようです。さらに、http://pecl.php.net/package/Fileinfoで、「PHP 5.3.0以降、この拡張機能はデフォルトで有効になっています」と読みました。どうしたの?

この問題はテスト サーバーにあります。私のローカルマシンではxamppとPHP 5.3.1があり、呼び出しは正常に機能するため、テスト時にphp_fileinfo.dllをローカルからphp \ extにコピーしようとしましたが、これも違いはありませんでした(バージョンが違いますが、5.3が重要なビットだと読みました)。

これに関するアドバイスをいただければ幸いです。

    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $filepath);
4

3 に答える 3

21

あなたはすでにそれを成し遂げるのに近づいています、あなたの側でいくつかの小さな構成だけが欠けています。

fileinfoの使用法とインストール手順を参照してください。

Windowsユーザーは、この拡張機能を有効にするには、バンドルされているphp_fileinfo.dllDLLファイルをphp.iniに含める必要があります。

そのDLLファイルはPHP5.3.6にバンドルされています。たとえば、ファイルは次の場所にあります。PHPForWindows-バイナリとソースリリースextPHPインストールのサブディレクトリにすでに配置されているはずです。そうでない場合は、上記のWebサイトから再度ダウンロードして(PHPのバージョンを選択してください)、拡張ディレクトリに配置します。

php.iniそれをアクティブにするには、thenに次の行を追加する必要があります。

extension=php_fileinfo.dll

これは、WindowsでPHP拡張機能をアクティブ化するための標準的な手順です。PHP拡張機能をアクティブ化する方法の詳細については、Windowsへの拡張機能のインストールを参照してください。php.iniファイルを見つけるのに問題がある場合は、PHPのインストール手順-Windowsシステムへのインストールを参照してください。

于 2011-04-09T15:36:46.400 に答える