Detect if the FreeType PHP extension is installed on the server

梦想的初衷 提交于 2019-12-04 02:52:36

问题


How do I test to see if the FreeType extension is installed on a server running PHP?

I wanted to make a simple CAPTCHA system on my site, so I used imagettftext() and it worked fine. But what if the server didn't have the FreeType library installed?

So is there a way to somehow detect FreeType library through code, and if it is not present, fall back to something like imagestring()?

If I can't use imagettftext() I may have to look at alternatives to draw big font text as the imagestring max size isn't good for something like a CAPTCHA.


回答1:


Use function_exists:

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

Hope that helps.




回答2:


This will not be better in practice than the function_exists solutions already posted, but the technically correct way to check is by using extension_loaded.




回答3:


Assuming the GD library is installed, you can detect Freetype support using the gd_info() function.

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

If you need to check whether or not GD library is installed first, use extension_loaded('gd');




回答4:


A first somewhat complicated approach:

call php_info() and search/parse the result for freetype




回答5:


This won't work for dynamic code (so not a true answer to the question) but for anyone who just want's to know if it's installed, from the command line on Linux:

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

Outputs:

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

NOTE: On a system without it installed you'll get no output.




回答6:


Try function_exists(), i.e.

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

You'd probably be best asking for alternatives to imagettftext as a separate question.



来源:https://stackoverflow.com/questions/4594189/detect-if-the-freetype-php-extension-is-installed-on-the-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!