3

我有一些使用Imagick或 GD 调整图像大小的代码,具体取决于服务器上可用的内容。

我正在测试每个使用该extension_loaded()功能的可用性。

if (extension_loaded('imagick')) {
    $image = new Imagick();
    ...
}

我有一位用户报告说他们正在接收:

致命错误:未找到“Imagick”类

什么情况会导致加载 Imagick 扩展但类不可用?我应该如何测试以使我的代码更健壮?

4

4 回答 4

2

您可以检查该类是否也存在?

class_exists("Imagick")

于 2009-09-25T09:15:19.820 回答
2

1:始终以不区分大小写的方式进行检查(在比较之前使字符串小写)

2:不检查库,检查功能。也许它的库版本有问题或有其他函数名称

3:在 php.ini 中,您可以通过名称显式禁用某些功能,所以我认为您应该求助于第 2 点并检查 function_exists 而不是 extension_*

此外,查看/var/log/apache2/errors该客户端服务器上的或等效项,以检查 ImageMagick 扩展生成的任何内部错误(应该在其中报告分段错误或其他类型的低级错误......)

于 2009-09-25T11:03:34.160 回答
0

区分大小写?

'imagick' 和Imagick.

于 2009-09-25T08:46:19.960 回答
0
    百胜安装 ImageMagick
    百胜安装 ImageMagick-devel
    pecl 安装 imagick
    回声“扩展=imagick.so”>/etc/php.d/imagick.ini
    服务 httpd 重启 [/etc/init.d/httpd 重启]
    php -m | grep 想象一下

参考

于 2012-06-06T09:47:41.050 回答