PHP fileinfo – неопределенная функция

Всякий раз, когда я пытаюсь получить тип контента mime из php, это echos:

Неустранимая ошибка: Class 'finfo' не найден в /home/jobynadel/finadel.com/video/finfo.php в строке 4

или

Неустранимая ошибка: вызов неопределенной функции finfo_open в /home/jobynadel/finadel.com/video/finfo.php в строке 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)); 

Посмотрите файл php.ini и убедитесь, что файл php_fileinfo.dll или php_fileinfo.dll активирован (в зависимости от вашей платформы и версии).

Должна быть строка, подобная

 extension=fileinfo.so 

в файле php.ini

Если вы используете XAMPP, вы включаете extension=php_fileinfo.dll в php.ini

Какая версия PHP у вас есть? PHP 5.3.0 и более поздние версии имеют встроенный Fileinfo, но в Windows вы должны включить его вручную в php.ini . Дополнительную информацию вы можете найти в документации .

Если вы используете WAMP, перейдите на PHP-расширения и enbale PHP_fileinfo и перезапустите все серверы.

Пользователи Windows: просто отредактируйте php.ini и раскомментируйте эту строку:

расширение = php_fileinfo.dll

Т.е. удалить предыдущую точку с запятой из; extension = php_fileinfo.dll

Не забудьте перезапустить Apache, чтобы новый php.ini вступил в силу.

Для тех, у кого это работало нормально, но затем появляется эта ошибка:

Некоторые хостинг-провайдеры (например, Dreamhost) позволяют клиентам переопределять параметры PHP по умолчанию в файле конфигурации, часто с помощью чего-то типа:

~/.php/5.4/phprc

Этот номер версии в пути может быть проблемой при обновлении PHP (или он обновляется от вашего имени). Любые пользовательские настройки из предыдущей версии, включая один, включающий расширение fileinfo, будут отсутствовать в более новой версии. Обычно вы можете просто скопировать файл конфигурации в соответствующий новый каталог конфигурации и перезапустить сервер.

У меня была такая же проблема с 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 

Затем сохраните и перезапустите веб-сервер.