【问题标题】:FileInfo not working in php 5.3.3FileInfo 在 php 5.3.3 中不起作用
【发布时间】:2011-06-19 00:15:51
【问题描述】:

我正在对 finfo_open() 进行简单调用,然后得到:

"调用未定义函数 finfo_open()"

FileInfo 不是用 php 5.3.3 (Unix) 打包的。需要在php.ini中开启吗?

谢谢

【问题讨论】:

  • 不确定但是,你能显示你正在使用它的代码行吗?
  • 我正在尝试在 WordPress 的实时服务器中做类似的事情,也许任何人都可以帮助我...stackoverflow.com/questions/57141795/…

标签: php fileinfo


【解决方案1】:

看起来您可以启用它,但您缺少一些常量。这些是我系统中的值:

FILEINFO_NONE = 0
FILEINFO_SYMLINK = 2
FILEINFO_MIME = 1040
FILEINFO_MIME_TYPE = 16
FILEINFO_MIME_ENCODING = 1024
FILEINFO_DEVICES = 8
FILEINFO_CONTINUE = 32
FILEINFO_PRESERVE_ATIME = 128
FILEINFO_RAW = 256

也许有帮助。

【讨论】:

  • 我不知道这些常量应该在哪里,但是将它们添加到 php.ini 对我来说是诀窍。
  • @user508402:如何在 php.ini 中添加常量?使用auto_prepend_file 指令?
【解决方案2】:

确实取决于,您服务器上的 php 可能由于某种原因在没有它的情况下被编译。

创建一个新的 .php 文件并放入臭名昭著的 <? phpinfo(); ?> 并检查该扩展名是否已编译。

【讨论】:

  • 看起来“SplFileInfo”已启用(但不确定是否相同)。在“配置命令”下它说:'--disable-fileinfo'。
  • @Pardoner:不,那是另一回事。 SplFileObject 和 SplFileInfo 与它无关。但 --disable 开关与 finfo 扩展有关。如果您找到/编译它,您仍然可以将其安装为单独的模块。 pecl.php.net/package/Fileinfo
  • @Pardoner:检查 php.ini 中的 extension= load 行。并重新启动 Apache。否则不会有任何效果。
  • @Pardoner:最好。 Linux 二进制文件使用一组额外的 /etc/php5/*/conf.d/ *.ini 文件。检查它是否在那里。
  • @Pardoner:看起来常量FILEINFO_MIME_TYPE 没有定义。您可以使用var_dump(get_defined_constants(1)); 进行交叉检查。
猜你喜欢
  • 1970-01-01
  • 2014-07-18
  • 2011-07-01
  • 1970-01-01
  • 2015-05-24
  • 2014-10-31
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
相关资源
最近更新 更多