【问题标题】:PHP fileinfo is undefined functionPHP fileinfo 是未定义的函数
【发布时间】:2011-04-04 11:47:55
【问题描述】:

每当我尝试从 php 获取 mime 内容类型时,它都会回显:

致命错误:/home/jobynadel/finadel.com/video/finfo.php4 中找不到类“finfo” >

致命错误: 调用 /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));

【问题讨论】:

  • 不是 php 或 laravel 的问题,您可能使用命名空间代码,这意味着您需要导入类

标签: php mime-types undefined-function


【解决方案1】:

查看您的 php.ini 文件并检查 fileinfo.sophp_fileinfo.dll 是否已激活(取决于您的平台和版本)。

应该有类似的一行

extension=fileinfo.so

在您的 php.ini 文件中

【讨论】:

  • $mime_type 返回一个包含 <mime type>; charset=<charset> 的字符串,因此为了获得实际的文件 mime 类型,我已经修改了问题。
  • 我使用this gist,可以使用也可以在此处找到的构建脚本进行更新。
【解决方案2】:

如果您使用 XAMPP,则在 php.ini 中启用 extension=php_fileinfo.dll

【讨论】:

    【解决方案3】:

    你有什么版本的PHP? PHP 5.3.0 及更高版本内置了 Fileinfo,但在 Windows 上,您必须在 php.ini 中手动启用它。您可以找到更多信息in the documentation

    【讨论】:

      【解决方案4】:

      如果您使用的是 WAMP,请转到 PHP 扩展并启用 PHP_fileinfo 并重新启动所有服务器。

      【讨论】:

        【解决方案5】:

        Windows 用户:只需编辑 php.ini 并取消注释此行:

        extension=php_fileinfo.dll
        

        即从

        中删除前面的分号
        ;extension=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
            

            然后保存并重新启动您的网络服务器。

            【讨论】:

              【解决方案8】:

              适用于 PHP 7.3 或更高版本

              改变

              ;extension=fileinfo
              

              extension=fileinfo
              

              在 php.ini 文件中。

              【讨论】:

                猜你喜欢
                • 2012-02-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-01-05
                • 1970-01-01
                相关资源
                最近更新 更多