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

检测服务器上是否安装了FreeType PHP扩展,php,php-extension,freetype,Php,Php Extension,Freetype,如何测试FreeType扩展是否安装在运行PHP的服务器上 我想在我的网站上制作一个简单的验证码系统,所以我使用了它,而且效果很好。但是如果服务器没有安装FreeType库呢 那么,是否有一种方法通过代码检测自由类型库,如果它不存在,那么返回到类似的东西 如果我不能使用imagettftext(),我可能必须考虑其他方法来绘制大字体文本,因为imagestring最大大小不适用于验证码之类的东西。使用: 希望这能有所帮助。第一种有点复杂的方法: 调用php_info()并搜索/解析freetyp

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

我想在我的网站上制作一个简单的验证码系统,所以我使用了它,而且效果很好。但是如果服务器没有安装FreeType库呢

那么,是否有一种方法通过代码检测自由类型库,如果它不存在,那么返回到类似的东西

如果我不能使用
imagettftext()
,我可能必须考虑其他方法来绘制大字体文本,因为
imagestring
最大大小不适用于验证码之类的东西。

使用:


希望这能有所帮助。

第一种有点复杂的方法:

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


您最好单独询问imagettftext的替代方案。

这在实践中不会比已经发布的解决方案更好,但技术上正确的检查方法是使用。

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

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

如果需要先检查是否安装了GD库,请使用
extension_-loaded('GD')

这不适用于动态代码(因此不是问题的真实答案),但适用于任何只想知道是否已安装的人,请在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

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

+1这不是检查是否安装了freetype,而是检查函数imagettftext是否可用-但这应该在给定的上下文中起作用:)我只是希望为此人指出正确的方向。是的,它同时检查GD和freetype。这可能很复杂,但它会起作用(为什么会有下一票?)下一票不是我的,但1)要让它发挥作用需要付出努力,2)它比任何其他解决方案都更脆弱(假设
php_info
的输出将来会发生变化)3)这是迄今为止计算成本最高的方法。这是检查扩展最简单、最有效的方法@选民:我很想知道这个答案有什么问题。谢谢。您可以检查
gd
扩展,但不能检查
freetype
,因为它不是PHP扩展(请参阅
PHP-m
的输出)
freetype
只是在编译期间链接到gd。
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