如何测试是否在运行PHP的服务器上安装了FreeType扩展?
我想在我的网站上创建一个简单的CAPTCHA系统,所以我使用imagettftext()
并且它工作正常。但是如果服务器没有安装FreeType库呢?
那么有没有办法以某种方式通过代码检测FreeType库,如果它不存在,可以回到类似imagestring()
的东西?
如果我无法使用imagettftext()
,我可能需要查看绘制大字体文字的替代方法,因为imagestring
最大尺寸对于像CAPTCHA这样的东西不好。
答案 0 :(得分:17)
在实践中
答案 1 :(得分:12)
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)
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
注意:在未安装系统的系统上,您将不会获得任何输出。