13

PHP を実行しているサーバーに FreeType 拡張機能がインストールされているかどうかをテストするにはどうすればよいですか?

私は自分のサイトで簡単な CAPTCHA システムを作りたかったので、使用imagettftext()しましたが、うまくいきました。しかし、サーバーに FreeType ライブラリがインストールされていない場合はどうなるでしょうか。

コードを介して FreeType ライブラリを何らかの方法で検出し、存在しない場合は次のようなものにフォールバックする方法はありimagestring()ますか?

使用できない場合は、CAPTCHA のようなものには最大サイズが適していないためimagettftext()、大きなフォントのテキストを描画するための代替手段を検討する必要があるかもしれません。imagestring

4

6 に答える 6

17

これは、すでに投稿されたソリューションよりも実際function_existsには優れているわけではありませんが、技術的に正しいチェック方法は、を使用することextension_loadedです。

于 2011-01-04T13:46:42.257 に答える
12

使用function_exists:

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

それが役立つことを願っています。

于 2011-01-04T13:41:55.353 に答える
5

GD ライブラリがインストールされていると仮定すると、gd_info()関数を使用して Freetype サポートを検出できます。

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

最初に GD ライブラリがインストールされているかどうかを確認する必要がある場合は、extension_loaded('gd');

于 2011-01-04T14:54:41.233 に答える
1

最初のやや複雑なアプローチ:

freetype の結果を呼び出しphp_info()て検索/解析する

于 2011-01-04T13:42:17.050 に答える
0

function_exists()を試してください。

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

別の質問として imagettftext に代わるものを尋ねるのがおそらく最善でしょう。

于 2011-01-04T13:42:55.727 に答える