检测服务器上是否安装了FreeType PHP扩展

时间:2011-01-04 13:37:02

标签: php php-extension freetype

如何测试是否在运行PHP的服务器上安装了FreeType扩展?

我想在我的网站上创建一个简单的CAPTCHA系统,所以我使用imagettftext()并且它工作正常。但是如果服务器没有安装FreeType库呢?

那么有没有办法以某种方式通过代码检测FreeType库,如果它不存在,可以回到类似imagestring()的东西?

如果我无法使用imagettftext(),我可能需要查看绘制大字体文字的替代方法,因为imagestring最大尺寸对于像CAPTCHA这样的东西不好。

6 个答案:

答案 0 :(得分:17)

在实践中

答案 1 :(得分:12)

使用function_exists

if (function_exists('imagettftext')) {
     imagettftext();
} else {
     // do other function
}

希望有所帮助。

答案 2 :(得分:5)

假设安装了GD库,您可以使用gd_info()函数检测Freetype支持。

$gdinfo = gd_info();
if($gdinfo['FreeType Support']) echo 'FreeType Support Enabled';

如果您需要先检查是否安装了GD库,请使用extension_loaded('gd');

答案 3 :(得分:1)

第一个有点复杂的方法:

调用php_info()并搜索/解析freetype

的结果

答案 4 :(得分:0)

尝试function_exists(),即

if (!function_exists('imagettftext')) {
  // No freetype library
}

你可能最好将imagettftext的替代品作为一个单独的问题。

答案 5 :(得分:0)

这不适用于动态代码(因此不是真正的问题答案),但对于只是想从Linux命令行上知道它是否已安装的任何人:

php -i | grep -E "GD|FreeType"

输出:

GD Support => enabled
GD headers Version => 2.2.5
GD library Version => 2.2.5
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.4.11

注意:在未安装系统的系统上,您将不会获得任何输出。