github : https://github.com/maxmind/GeoIP2-php

代码库下载:
链接: https://pan.baidu.com/s/1FDKTrn3Uj3iFClbRPxgwEg 密码: s55k

使用方法:


//根据ip获得当前位置信息
use GeoIp2\Database\Reader;
function get_ip_location($ip = ''){
    if (empty($ip)) return [];
    //import('autoload',EXTEND_PATH.'GeoIP2/vendor');
    require 'GeoIP2/vendor/autoload.php'
    // This creates the Reader object, which should be reused across
    // lookups.
    //$reader = new Reader(EXTEND_PATH.'GeoIP2/maxmind-db/city_20180703/GeoLite2-City.mmdb');
    $reader = new Reader('GeoIP2/maxmind-db/city_20180703/GeoLite2-City.mmdb');
    $return = [];
    // Replace "city" with the appropriate method for your database, e.g.,
    // "country".
    $record = $reader->city($ip);
    $return['isoCode'] = $record->country->isoCode;
    $return['country_name'] = $record->country->name;
    $return['cn_country_name'] = $record->country->names['zh-CN'];
    $return['zones_name'] = $record->mostSpecificSubdivision->name;
    $return['zones_ios'] = $record->mostSpecificSubdivision->isoCode;
    $return['city_name'] = $record->city->name;
    $return['city_code'] = $record->postal->code;
    $return['latitude'] = $record->location->latitude;
    $return['longitude'] = $record->location->longitude;

    return $return;

}

结果: Array ( [isoCode] => CN [country_name] => China [cn_country_name] => 中国 [zones_name] => Beijing [zones_ios] => BJ [city_name] => Beijing [city_code] => [latitude] => 39.9289 [longitude] => 116.3883 )

解决 laravel-admin between datetime 假如数据库是时间戳int类型无法筛选。

laravel-admin默认的between->datetime(),查询默认是datetime类型,但是假如数据库是时间戳类型就会报错,又不想改底层文件的话可以试试加自定义筛选功能...

阅读全文

php解析英文语句,自动分解。

参考:https://www.php.net/manual/en/function.str-split.php 最近碰到一个问题,客户的英文地址太长,超出接口api字段长度,所以需要解析下语句分解发送。 ...

阅读全文

记录一个laravel-excel导出表格值为0导出excel显示空的解决方法。

最近在使用laravel-excel导出表格的时候,发现假如字段值为0的情况下,导出的excel中直接显示为空,找到一个方法解决,如下. 在laravel-excel的config配置中...

阅读全文

评论已经关闭。