Подтвердить что ты не робот

Обнаруживать, если на сервере установлено расширение PHP FreeType

Как проверить, установлено ли расширение FreeType на сервере с PHP?

Я хотел создать простую систему CAPTCHA на моем сайте, поэтому я использовал imagettftext(), и он работал нормально. Но что, если на сервере не было установлена ​​библиотека FreeType?

Итак, есть способ как-то обнаружить библиотеку FreeType через код, а если ее нет, вернитесь к чему-то вроде imagestring()

Если я не могу использовать imagettftext(), мне, возможно, придется искать альтернативы для рисования большого текста шрифта, так как размер imagestring max не подходит для чего-то вроде CAPTCHA.

4b9b3361

Ответ 1

Используйте function_exists:

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

Надеюсь, что это поможет.

Ответ 2

Это не будет лучше на практике, чем function_exists уже опубликованные решения, но технически правильный способ проверки - использовать extension_loaded.

Ответ 3

Предполагая, что библиотека GD установлена, вы можете обнаружить поддержку Freetype, используя функцию gd_info().

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

Если вам нужно проверить, установлена ​​ли ранее библиотека GD, используйте extension_loaded('gd');

Ответ 4

Первый несколько сложный подход:

вызвать php_info() и выполнить поиск/разбор результатов для freetype

Ответ 5

Попробуйте function_exists(), т.е.

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

Вероятно, вам будет лучше просить альтернативы imagettftext в качестве отдельного вопроса.

Ответ 6

Для разнообразия из командной строки в 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

ПРИМЕЧАНИЕ. В системе без нее вы не получите выходных данных.