web-dev-qa-db-ja.com

PHP fileinfoは未定義の関数です

PHPからmimeコンテンツタイプを取得しようとすると、常にエコーします。

致命的なエラー:クラス 'finfo'が見つかりません/ home/jobynadel/finadel.com/video/finfo.php4

または

致命的エラー:/ home/jobynadel/finadel.com/video/finfo.phpの未定義関数finfo_openの呼び出し4

わかりません!

私が使用しているコードは次のとおりです。

$file_info = new finfo(FILEINFO_MIME_TYPE);
// See constant value http://php.net/manual/en/fileinfo.constants.php#113687 
$mime_type = $file_info->buffer(file_get_contents($file));
65
Jobynad

Php.iniファイルを見て、fileinfo.soor php_fileinfo.dllがアクティブになります(プラットフォームとバージョンによって異なります)。

次のような行があるはずです

extension=fileinfo.so

php.iniファイル内

95
jdehaan

XAMPPを使用している場合、extension=php_fileinfo.dll php.iniで

28
binhhoang18

PHPのバージョンは何ですか?PHP 5.3.0以降ではFileinfoが組み込まれていますが、Windowsではphp.ini。さらに詳しい情報を見つけることができます ドキュメント内

20
Jordan Running

WAMPを使用している場合は、PHP拡張機能に移動し、PHP_fileinfoを有効にして、すべてのサービスを再起動します。

9
Vikrant Ramteke

Windowsユーザー:php.iniを編集して、この行のコメントを外します。

extension=php_fileinfo.dll

つまりから先行するセミコロンを削除します

;extension=php_fileinfo.dll

新しいphp.iniを有効にするために、Apacheを再起動することを忘れないでください。

5
Peter Moses

PHPでも同じ問題が発生しました。次の手順を実行しました。

 - make sure that the fileinfo extension is already installed if you are using < PHP 5.3.0.

 - Then you have to add in php.ini ;extension=fileinfo.so or
   ;extension=php_fileinfo.dll

 -  If you want to uncomment remove the semicolon(;)
   extension=fileinfo.so or extension=php_fileinfo.dll

次に、Webサーバーを保存して再起動します。

1
lalithkumar

それらは正常に機能していましたが、このエラーが表示されます:

一部のホスティングプロバイダー(Dreamhostなど)では、構成ファイルのデフォルトのPHP設定を、多くの場合次のようなパスでオーバーライドできます。

~/.php/5.4/phprc

PHP(または、あなたに代わってアップグレードされます)。fileinfo拡張を有効にするものを含む、以前のバージョンからのカスタム設定は、通常、設定ファイルを適切な新しい設定ディレクトリにコピーして、サーバーを再起動することができます。

1
Alan Bellows