Ответ 1
Используйте function_exists
:
if (function_exists('imagettftext')) {
imagettftext();
} else {
// do other function
}
Надеюсь, что это поможет.
Как проверить, установлено ли расширение FreeType на сервере с PHP?
Я хотел создать простую систему CAPTCHA на моем сайте, поэтому я использовал imagettftext()
, и он работал нормально. Но что, если на сервере не было установлена библиотека FreeType?
Итак, есть способ как-то обнаружить библиотеку FreeType через код, а если ее нет, вернитесь к чему-то вроде imagestring()
Если я не могу использовать imagettftext()
, мне, возможно, придется искать альтернативы для рисования большого текста шрифта, так как размер imagestring
max не подходит для чего-то вроде CAPTCHA.
Используйте function_exists
:
if (function_exists('imagettftext')) {
imagettftext();
} else {
// do other function
}
Надеюсь, что это поможет.
Это не будет лучше на практике, чем function_exists
уже опубликованные решения, но технически правильный способ проверки - использовать extension_loaded
.
Предполагая, что библиотека GD установлена, вы можете обнаружить поддержку Freetype, используя функцию gd_info().
$gdinfo = gd_info();
if($gdinfo['FreeType Support']) echo 'FreeType Support Enabled';
Если вам нужно проверить, установлена ли ранее библиотека GD, используйте extension_loaded('gd');
Первый несколько сложный подход:
вызвать php_info()
и выполнить поиск/разбор результатов для freetype
Попробуйте function_exists(), т.е.
if (!function_exists('imagettftext')) {
// No freetype library
}
Вероятно, вам будет лучше просить альтернативы imagettftext в качестве отдельного вопроса.
Для разнообразия из командной строки в 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
ПРИМЕЧАНИЕ. В системе без нее вы не получите выходных данных.