在 GeoIP2 中找不到阅读器类

Posted

技术标签:

【中文标题】在 GeoIP2 中找不到阅读器类【英文标题】:reader class not found in GeoIP2 【发布时间】:2013-12-12 10:27:09 【问题描述】:

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

Fatal error: Class 'GeoIp2\Database\reader' not found in C:\Program Files\*\*\localweb\GeoIp2\index.php on line 19

这就是脚本在 index.php 中的样子:

<?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');
?>

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

感谢@Greg Oschwald,这对我有用! 由于我没有使用作曲家,我现在的代码是:

<?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文件

【讨论】:

【参考方案2】:

尝试改变:

使用 GeoIp2\Database\reader;

到:

使用 GeoIp2\Database\Reader;

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在 GeoIP2 中找不到阅读器类的主要内容,如果未能解决你的问题,请参考以下文章

在根项目“网关”中找不到任务“bootRepackage”

在 EasyPHP 文件夹中找不到 Zend 目录

在 django 1.9 中找不到我的静态文件

Discord Bot 在消息中找不到嵌入内容

在 Android Studio 4.0(Canary) 中找不到预览窗口的位置

在 android studio 中找不到 proguard-project.txt