3

さまざまなサーバーで多数のサイトを運営しています。一部のサーバーでは、ApacheサーバーにGeoIPモジュールがインストールされているため、IPアドレスを介してサーバーの場所を確認できます。たとえば、国名を取得するには、次のようにします。

$countryName = apache_note("GEOIP_COUNTRY_NAME");

ただし、GeoIPモジュールを使用しない一部のサーバーでは、これにより問題が発生するようです。

$countryName comesが存在する場合、バックエンプティテストがapache_note("GEOIP_COUNTRY_NAME")存在するかどうかを確認するだけでisset()は不十分なようです。エラーメッセージなしでHTMLレンダリングが失敗するようです。

ifでは、 PHPでステートメントを作成して、そのGeoIPモジュールがApacheに存在するかどうかをテストする方法はありますか?

(GeoIPモジュールがインストールされていないサーバーでは、Apache設定にアクセスできないため、モジュールをインストールすることはできません。)

4

1 に答える 1

4

apache_get_modules http://php.net/manual/en/function.apache-get-modules.php を使用して、モジュールがロードされているかどうかを確認できるはずです。モジュールが返された配列にあるかどうかを確認するだけです。ただし、PHPをCGIとして呼び出している場合、これは明らかに機能しません。

$mods = apache_get_modules();

if (array_search('mod_geoip',$mods)){
   print "GEO IP exist";
}else{
   print "GEO IP Doesn't Exist";
}
于 2012-04-26T04:38:25.303 に答える