我在使用PHP 5.3.5&amp ;;在Windows Server 2003上运行的PHP脚本中调用finfo_open时遇到问题。 IIS 6.调用始终返回致命错误:在...中调用未定义函数finfo_open()
通过一点阅读,我知道在Windows PHP安装中默认不包含fileinfo功能,但我尝试的任何东西都无法正常工作。评论#3中的说明:http://www.php.net/manual/en/fileinfo.installation.php没有帮助,这是我能找到的官方最正式的解释。有很多关于在网络上需要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);
答案 0 :(得分:20)
你已经接近完成它,你的结尾只缺少一些配置。
请参阅fileinfo usage and installation instructions:
Windows用户必须在php.ini中包含捆绑的php_fileinfo.dll DLL文件才能启用此扩展程序。
例如,该DLL文件与PHP 5.3.6共存,您可以在此处找到这些文件:PHP For Windows - Binaries and sources Releases。它应该已经位于PHP安装的ext
子目录中。如果没有从上述网站再次下载(选择您的PHP版本)并将其放入扩展目录。
您需要在php.ini
添加以下行,然后将其激活:
extension=php_fileinfo.dll
这是在Windows下激活PHP扩展的标准过程。您可以在此处找到有关如何激活PHP扩展的更多信息:Installation of extensions on Windows。如果您在找到php.ini文件时遇到问题,请参阅PHP installation instructions - Installation on Windows systems。
答案 1 :(得分:4)
这一行
extension=php_fileinfo.dll
在我的php.ini
中发表了评论,因此我取消注释,然后重新启动了我的xampp服务器。
答案 2 :(得分:0)
做了什么建议之后,仍然没有加载FileInfo扩展名,但是最终我通过弄清楚我正在修改的php.ini文件是错误的文件(位于\ MAMP \ bin \ php \ php7.2.10),而正确的目录位于\ MAMP \ conf \ php7.2.10。 在正确的ini文件中启用它之后,我不得不重新启动php服务器并使其无法工作。
注意:您可能必须从路径的开头用安装Web服务器解决方案堆栈软件(例如MAMP,WAMP,XAMP或其他)的路径替换'\ MAMP'。自从我使用MAMP以来,这就是它出现在我的文件路径中的原因