PHP fileinfo - это функция undefined

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

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

или

Неустранимая ошибка: Вызов функции undefined finfo_open в /home/jobynadel/finadel.com/video/finfo.php в строке 4 strong >

Я просто не могу понять это!

Используемый мной код:

$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));

Ответ 1

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

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

extension=fileinfo.so

в файле php.ini

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

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

Ответ 6

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

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

~/.php/5.4/phprc

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

Ответ 7

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

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