资讯专栏INFORMATION COLUMN

[扩展推荐] Laravel 中利用 GeoIP 获取用户地理位置信息

邱勇 / 2642人阅读

摘要:我最近需要一个用户地域检测来设置用户的默认区域和货币。由创建的很好地满足为项目提供服务的要求。这个包的基本使用是引用帮助函数,可选择性传递地址参数。如果目标地址没有找到,可使用一份可配置的备用地址代替,这时参数被设置为。

我最近需要一个用户地域检测来设置用户的默认区域和货币。由 Daniel Stainback 创建的 torann/geoip  很好地满足为Laravel 5 项目提供 GeoIP 服务的要求。

这个 Laravel GeoIP 包支持一些服务,包括默认的 ip-api.com 服务, 一个可下载的 Maxmind 数据库和 Maxmind API。你也可以通过这个配置轻松地增加一个通用的服务。

这个包的基本使用是引用 geoip() 帮助函数,可选择性传递 IP 地址参数。下面是一个基于 IP 地址的地址对象的例子:

TorannGeoIPLocation {

    #attributes:array [
        "ip"           => "232.223.11.11",
        "iso_code"     => "US",
        "country"      => "United States",
        "city"         => "New Haven",
        "state"        => "CT",
        "state_name"   => "Connecticut",
        "postal_code"  => "06510",
        "lat"          => 41.28,
        "lon"          => -72.88,
        "timezone"     => "America/New_York",
        "continent"    => "NA",
        "currency"     => "USD",
        "default"      => false,
    ]
}

正如你所看到的,地址对象包含一些地域信息,有助于决定用户的货币,时区和国家 ISO 代码。

如果目标地址没有找到,可使用一份可配置的备用地址代替,这时 default 参数被设置为 true 。你可以覆盖默认设置,默认配置如下所示:

"default_location" => [
    "ip" => "127.0.0.0",
    "iso_code" => "US",
    "country" => "United States",
    "city" => "New Haven",
    "state" => "CT",
    "state_name" => "Connecticut",
    "postal_code" => "06510",
    "lat" => 41.31,
    "lon" => -72.92,
    "timezone" => "America/New_York",
    "continent" => "NA",
    "default" => true,
    "currency" => "USD",
],

在 Github 官方地址 上查看包的源代码,阅读 文档 有助于你使用这个包。

更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28716.html

相关文章

  • 下载量最高 100 个 Laravel 扩展推荐

    摘要:本文经授权转自社区,后续更新将以帖子内容和内容为准。说明另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态。本文对上打了标签的扩展包进行整理,截止到现在年月号,有超过个扩展包,以下是下载量最大的个。 本文经授权转自 PHPHub 社区,后续更新将以 PHPHub 帖子内容 和 GitHub 内容 为准。 说明 Laravel 另一个令人喜欢的地方...

    Tychio 评论0 收藏0
  • Laravel 创建自己的 Facade

    摘要:使用现在,在任何一个控制器,或者路由的回调函数中,使用你会发现,已经可以好好工作了,参考文章设计模式九外观模式结构型服务容器实例教程深入理解控制反转和依赖注入服务提供者实例教程创建测试实例 我的博客原文: http://www.qinblog.net/Articl... 前言 laravel 提供了一个灵活的模式,那就是 facade 。框架内部的 DB、Auth、File 等功能也...

    K_B_Z 评论0 收藏0
  • Nginx-深度学习篇

    摘要:深度学习篇一动静分离通过中间件将动态请求和静态请求进行分离。原因分离资源,减少不必要的请求消耗,减少请求延时。关闭后,重定向会失效。验证规则保持一致。启动,也会要求你输入密码。根据用户的信息等信息区别根据用户的地址实现灰度发布示意图 Nginx-深度学习篇 一、动静分离 通过中间件将动态请求和静态请求进行分离。原因:分离资源,减少不必要的请求消耗,减少请求延时。 动态和静态请求图例:s...

    wh469012917 评论0 收藏0
  • Nginx-深度学习篇

    摘要:深度学习篇一动静分离通过中间件将动态请求和静态请求进行分离。原因分离资源,减少不必要的请求消耗,减少请求延时。关闭后,重定向会失效。验证规则保持一致。启动,也会要求你输入密码。根据用户的信息等信息区别根据用户的地址实现灰度发布示意图 Nginx-深度学习篇 一、动静分离 通过中间件将动态请求和静态请求进行分离。原因:分离资源,减少不必要的请求消耗,减少请求延时。 动态和静态请求图例:s...

    Carson 评论0 收藏0
  • laravel开发扩展记录

    摘要:自动代码扩展开发时遵守的代码风格是项目开发规范。遵照此规范,在实际操作中,有许多重复,接下来推荐一款专为此规范量身定制的代码生成器。可以利用此扩展来快速构建项目原型。后续还会为大家带来一些最新的技术扩展。 whoops 错误提示扩展 whoops 是一个非常优秀的 PHP Debug 扩展,它能够使你在开发中快速定位出错的位置。laravel默认安装。showImg(https://s...

    fancyLuo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<