首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GeoIP2中找不到读卡器类

在GeoIP2中找不到读卡器类
EN

Stack Overflow用户
提问于 2013-12-12 18:27:09
回答 3查看 4.2K关注 0票数 0

我正在尝试安装Maxmind的GeoIP2。我按照他们的指示做了所有的事情,但我仍然得到这个恼人的错误:

代码语言:javascript
复制
Fatal error: Class 'GeoIp2\Database\reader' not found in C:\Program Files\*\*\localweb\GeoIp2\index.php on line 19

下面是脚本在index.php中的外观:

代码语言:javascript
复制
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\reader;
// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('C:/Program Files/*/*/localweb/GeoIp2/Database/GeoLite2-Country.mmdb');
$record = $reader->country('128.101.101.101');
?>

有人能帮上忙吗?

EN

回答 3

Stack Overflow用户

发布于 2016-10-12 04:22:43

这对我很有效,谢谢@Greg Oschwald!因为我没有使用composer,所以我现在的代码是:

代码语言:javascript
复制
<?php
require 'geoip2.phar';
try {
    $reader = new GeoIp2\Database\Reader('GeoLite2-City.mmdb');
    $record = $reader->city('128.101.101.101');
    print($record->country->isoCode . "\n"); // 'US'
    print($record->country->name . "\n"); // 'United States'
    print($record->country->names['zh-CN'] . "\n"); // '??'
    print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
    print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
    print($record->city->name . "\n"); // 'Minneapolis'
    print($record->postal->code . "\n"); // '55455'
    print($record->location->latitude . "\n"); // 44.9733
    print($record->location->longitude . "\n"); // -93.2323
} catch (Exception $e) {
    echo 'Could not open Phar: ', $e;
}

https://github.com/maxmind/GeoIP2-php/releases获取了phar文件

票数 3
EN

Stack Overflow用户

发布于 2013-12-12 22:07:37

尝试更改:

使用GeoIp2\Database\reader;

至:

使用GeoIp2\Database\Reader;

票数 1
EN

Stack Overflow用户

发布于 2020-10-03 03:46:06

尝试将php版本升级到7.1.33或更高版本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20540903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档