我有一些代码正在调整图像大小,使用Imagick或GD,具体取决于服务器上的可用内容。
我正在使用extension_loaded()
函数测试每个的可用性。
if (extension_loaded('imagick')) {
$image = new Imagick();
...
}
我有一个用户报告他们正在接收:
致命错误:未找到“Imagick”类
什么情况会导致Imagick扩展程序被加载但该类不可用?我应该如何测试以使我的代码更健壮?
答案 0 :(得分:2)
您可以检查该类是否也存在?
class_exists( “Imagick”)
答案 1 :(得分:2)
1:总是以不区分大小写的方式进行检查(在比较之前将字符串设为小写)
2:不检查库,检查功能。也许它的库版本有错误或有其他功能名称
3:在php.ini中,您可以通过名称显式禁用某些功能,所以我认为你应该求助于#2点并检查function_exists而不是扩展名_ *
另外,请查看/var/log/apache2/errors
或该客户端服务器上的等效项,以检查ImageMagick扩展程序生成的任何内部错误(segmentation fault或其他类型的低级错误应报告在那里...)
答案 2 :(得分:0)
区分大小写?
'imagick'和Imagick
。
答案 3 :(得分:0)
yum install ImageMagick yum install ImageMagick-devel pecl install imagick echo "extension=imagick.so" > /etc/php.d/imagick.ini service httpd restart [/etc/init.d/httpd restart] php -m | grep imagick