-1

サンプル PHP スクリプトから MAXMIND の geoip.dat を呼び出そうとすると、奇妙なエラーが発生しました - http://dev.maxmind.com/geoip/downloadable

*Warning*: Unexpected character in input: '
in*C:\Inetpub\wwwroot\clients\geoip\GeoIP.dat*on line*983*
*Parse error*: syntax error, unexpected T_STRING
in*C:\Inetpub\wwwroot\clients\geoip\GeoIP.dat*on line*983*

バイナリ ファイルである Geoip.dat は、 http://dev.maxmind.com/geoip/geoliteから個別にダウンロードする必要があります。私が使用しなかった CSV バージョンもあることに注意してください。

私のコードは、パスを除いて、サンプル スクリプトとほぼ同じです。

<?php

// This code demonstrates how to lookup the country by IP Address

include("GeoIP.dat");

// Uncomment if querying against GeoIP/Lite City.
// include("geoipcity.inc");

$IPaddress=$_SERVER['REMOTE_ADDR'];

$gi =
geoip_open("C:\Inetpub\wwwroot\clients\geoip\GeoIP.dat",GEOIP_STANDARD);

echo geoip_country_code_by_addr($gi, $IPaddress) . "\t" .
geoip_country_name_by_addr($gi, $IPaddress) . "\n";
echo geoip_country_code_by_addr($gi, $IPaddress) . "\t" .
geoip_country_name_by_addr($gi, $IPaddress) . "\n";

geoip_close($gi);

?>

これが私のPHP情報の出力です:

PHP Version 5.2.6

System  Windows NT 5.2 build 3790
Build Date  May 2 2008 18:01:20
Configure Command   cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared" "--with-extra-includes=C:\Program Files (x86)\Microsoft SDK\Include;C:\PROGRA~2\MICROS~2\VC98\ATL\INCLUDE;C:\PROGRA~2\MICROS~2\VC98\INCLUDE;C:\PROGRA~2\MICROS~2\VC98\MFC\INCLUDE" "--with-extra-libs=C:\Program Files (x86)\Microsoft SDK\Lib;C:\PROGRA~2\MICROS~2\VC98\LIB;C:\PROGRA~2\MICROS~2\VC98\MFC\LIB"
Server API  ISAPI
Virtual Directory Support   enabled
Configuration File (php.ini) Path   C:\WINDOWS
Loaded Configuration File   C:\Parallels\Plesk\Additional\PleskPHP5\php.ini
PHP API 20041225
PHP Extension   20060613
Zend Extension  220060519
Debug Build no
Thread Safety   enabled
Zend Memory Manager enabled
IPv6 Support    enabled
Registered PHP Streams  php, file, data, http, ftp, compress.zlib, https, ftps
Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tls
Registered Stream Filters   convert.iconv.*, string.rot13, string.toupper, string.tolower,
4

1 に答える 1

2

GeoIP.datincludeは PHP ファイルではないため、ステートメントを使用して含めることはできません。geoip.inc代わりに(どこにでも)インクルードすると、コードが機能するはずです。

于 2013-04-12T03:34:12.247 に答える