eseath / sypexgeo
一个用于操作 SypexGeo 数据库文件的 PHP 扩展包。
v2.3.2
2024-02-10 11:55 UTC
Requires
- php: ^7.0|^8.0
- ext-curl: *
- ext-zip: *
- guzzlehttp/guzzle: ^6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^3.6
- phpunit/phpunit: ^6.5|^7.5|^8.5|^9.5
README
一个用于操作 SypexGeo 数据库文件的 PHP 扩展包。
当前版本支持 Laravel 5.1 及以上版本。
安装
composer require eseath/sypexgeo
对于非 Laravel 项目,您需要手动下载数据库文件
数据库每月更新 2 次。
设置
Laravel
1. 如果 Laravel 版本 <= 5.4,请在 config/app.php
中添加
'providers' => [ \Eseath\SxGeo\SxGeoServiceProvider::class, ]
2. 发布配置 sxgeo.php
(可选)
php artisan vendor:publish --provider="Eseath\SxGeo\SxGeoServiceProvider"
默认情况下,在配置中指定城市数据库的 URL。如果您需要国家数据库,请更改 URL
...
'dbFileURL' => 'https://sypexgeo.net/files/SxGeoCountry.zip',
...
3. 下载数据库文件
php artisan sxgeo:update
您可以使用以下命令通过 CRON 升级数据库到当前版本。
使用方法
use Eseath\SxGeo\SxGeo; $sxGeo = new SxGeo('/path/to/database/file.dat'); $fullInfo = $sxGeo->getCityFull($ip); $briefInfo = $sxGeo->get($ip);
与 Laravel 一起使用
use SxGeo; $data = SxGeo::getCityFull($ip);
示例数据
array:3 [▼
"city" => array:5 [▼
"id" => 524901
"lat" => 55.75222
"lon" => 37.61556
"name_ru" => "Москва"
"name_en" => "Moscow"
]
"region" => array:4 [▼
"id" => 524894
"name_ru" => "Москва"
"name_en" => "Moskva"
"iso" => "RU-MOW"
]
"country" => array:6 [▼
"id" => 185
"iso" => "RU"
"lat" => 60
"lon" => 100
"name_ru" => "Россия"
"name_en" => "Russia"
]
]
array:2 [▼
"city" => array:5 [▼
"id" => 524901
"lat" => 55.75222
"lon" => 37.61556
"name_ru" => "Москва"
"name_en" => "Moscow"
]
"country" => array:2 [▼
"id" => 185
"iso" => "RU"
]
]
运行测试
测试由 Travis CI 在多个 PHP 和 Laravel 版本上自动运行。
如果您想在本地上运行测试,请使用以下命令
python3 ./test.py
开发
docker-compose run php-7.1 composer install