我有一些使用Imagick或 GD 调整图像大小的代码,具体取决于服务器上可用的内容。
我正在测试每个使用该extension_loaded()
功能的可用性。
if (extension_loaded('imagick')) {
$image = new Imagick();
...
}
我有一位用户报告说他们正在接收:
致命错误:未找到“Imagick”类
什么情况会导致加载 Imagick 扩展但类不可用?我应该如何测试以使我的代码更健壮?
我有一些使用Imagick或 GD 调整图像大小的代码,具体取决于服务器上可用的内容。
我正在测试每个使用该extension_loaded()
功能的可用性。
if (extension_loaded('imagick')) {
$image = new Imagick();
...
}
我有一位用户报告说他们正在接收:
致命错误:未找到“Imagick”类
什么情况会导致加载 Imagick 扩展但类不可用?我应该如何测试以使我的代码更健壮?
您可以检查该类是否也存在?
class_exists("Imagick")
1:始终以不区分大小写的方式进行检查(在比较之前使字符串小写)
2:不检查库,检查功能。也许它的库版本有问题或有其他函数名称
3:在 php.ini 中,您可以通过名称显式禁用某些功能,所以我认为您应该求助于第 2 点并检查 function_exists 而不是 extension_*
此外,查看/var/log/apache2/errors
该客户端服务器上的或等效项,以检查 ImageMagick 扩展生成的任何内部错误(应该在其中报告分段错误或其他类型的低级错误......)
区分大小写?
'imagick' 和Imagick
.
百胜安装 ImageMagick 百胜安装 ImageMagick-devel pecl 安装 imagick 回声“扩展=imagick.so”>/etc/php.d/imagick.ini 服务 httpd 重启 [/etc/init.d/httpd 重启] php -m | grep 想象一下