Zend FR finfo错误警告:字符串扩展名“B”无效

时间:2012-07-24 13:15:43

标签: php zend-framework

将Zend FR更新为1.11

后出现问题

Mimetype文件检查生成:

警告:字符串扩展名“B”无效

看起来像Zend_Validate_File_MimeType中的字符串问题的原因

$finfo = finfo_open(FILEINFO_MIME_TYPE, $file);

我创建了简单的测试用例

$finfo = finfo_open(FILEINFO_MIME_TYPE, '/usr/share/misc/magic');
echo finfo_file($finfo, PUBLIC_HTML_PATH . '/images/missing.png');
finfo_close($finfo);

我得到同样的错误:(

finfo_open(FILEINFO_MIME_TYPE, '/usr/share/misc/magic'); //generates: Warning: string extension `B' invalid.

我的操作系统:Kbuntu 10.10

我哪里错了?

3 个答案:

答案 0 :(得分:2)

与Mike Purcell一样,输入相同的错误消息(“警告:字符串扩展名w'在Command中无效),但修复程序不同。

在我们的服务器上,我们有一个/usr/share/misc/magic和一个/usr/share/misc/magic.mgc文件。 magic.mgc文件是从magic文件编译的,但是PHP仍然不喜欢直接与/usr/share/misc/magic文件交谈(我们已经转移到该文件作为调试的一部分magic.mgc文件需要更新。

我们的修复方法是将putenv行更改回magic.mgc文件:

putenv('MAGIC=/usr/share/misc/magic.mgc');

然后,magic - 盟友:-),整个哑剧型检测系统再次开始工作。

答案 1 :(得分:1)

根据您的PHP版本,可能会更新魔术格式。这在http://php.net/manual/en/function.finfo-open.php

的说明中有记录

运行php -v查看您的版本

我在源代码树中指向一个较旧的魔术文件时遇到了同样的错误,当我从当前的Linux发行版指向一个较新的魔术文件时解决了它

答案 2 :(得分:0)

我在Laravel中遇到此错误(当然是减去Zend FR)。在带有IIS的Windows机器上运行PHP 5.3.21。

在网上发现很少的信息我几乎放弃了。它最初是在我按照PHP.net上的注释中的说明工作的,这些注释基本上是将fileinfo.dll添加到PHP安装中,并且还下载相关的魔术文件并将环境变量指向它们。

在我意识到我实际上没有php_fileinfo.dll之前有一些初步的混淆,所以除了将它添加到php.ini文件之外,我还必须自己下载文件并将其添加到我的 ext 目录。

现在真正让我感到困惑的是,它最初起作用了。第二天它没有。简而言之,它不需要环境变量MAGIC。这让我卡住的原因是因为我已经尝试了所有可能的场景,但是一旦设置了环境变量,它就已经设置好了。删除后我不得不重启Windows服务器,取消设置。一旦我这样做,它完美地工作。