file
我最近需要一個(gè)用戶地域檢測(cè)來(lái)設(shè)置用戶的默認(rèn)區(qū)域和貨幣约啊。由 Daniel Stainback 創(chuàng)建的 torann/geoip 很好地滿足為L(zhǎng)aravel 5 項(xiàng)目提供 GeoIP 服務(wù)的要求忆家。
這個(gè) Laravel GeoIP 包支持一些服務(wù)闻蛀,包括默認(rèn)的 ip-api.com 服務(wù), 一個(gè)可下載的 Maxmind 數(shù)據(jù)庫(kù)和 Maxmind API杏头。你也可以通過(guò)這個(gè)配置輕松地增加一個(gè)通用的服務(wù)港华。
這個(gè)包的基本使用是引用 geoip()
幫助函數(shù)鱼冀,可選擇性傳遞 IP 地址參數(shù)累铅。下面是一個(gè)基于 IP 地址的地址對(duì)象的例子:
\Torann\GeoIP\Location {
#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,
]
}
正如你所看到的糕非,地址對(duì)象包含一些地域信息蒙具,有助于決定用戶的貨幣球榆,時(shí)區(qū)和國(guó)家 ISO 代碼。
如果目標(biāo)地址沒(méi)有找到禁筏,可使用一份可配置的備用地址代替持钉,這時(shí) default
參數(shù)被設(shè)置為 true
。你可以覆蓋默認(rèn)設(shè)置篱昔,默認(rèn)配置如下所示:
'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 官方地址 上查看包的源代碼每强,閱讀 文檔 有助于你使用這個(gè)包。
更多現(xiàn)代化 PHP 知識(shí)州刽,請(qǐng)前往 Laravel / PHP 知識(shí)社區(qū)