在 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 中找不到阅读器类的主要内容,如果未能解决你的问题,请参考以下文章