php - 为什么加载的 PHP 扩展会在类实例化时失败?

标签 php imagemagick

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

我正在使用 extension_loaded() 函数测试每一个的可用性。

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

我有一位用户报告说他们收到了:

Fatal error: Class 'Imagick' not found

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

最佳答案

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

2:不检查库,检查特性。也许它有一个有问题的库版本或者有其他函数名称

3: 在 php.ini 中你可以通过名称显式禁用一些函数 所以我认为你应该求助于点 #2 并检查 function_exists 而不是 extension_*

此外,查看 /var/log/apache2/errors 或该客户端服务器上的等效项,以检查 ImageMagick 扩展(segmentation fault 或其他类型的应该在那里报告低级错误...)

关于php - 为什么加载的 PHP 扩展会在类实例化时失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1475830/

相关文章:

python - 从 Python 中的 imagemagick 子进程读取输出

php - 如何在 Laravel 5 的 Controller 中使用 Request::user() ?

php - 带有参数的 Laravel-4 路由被调用两次

php - 如何在 fputcsv 中使用 foreach?

php - 设置ImageMagick PNG图像背景颜色

node.js - 寻找 imagemagick nodejs npm?

javascript - 给定原始图像分辨率,缩放后如何使用javascript计算新分辨率?

php - 跨 session 的静态变量

php - 在 PHP MYSQLI 中将 3 个或更多表链接在一起以创建墙源

imagemagick - 使用 ImageMagick 从扫描图像自动修剪白色边框?