Содержание
GEO
Плагин Geo дает вам несколько функций для получения геоданных.
Пространство имен: \Web
Расположение файла:lib/web/geo.php
Инициализация
Вернуть экземпляр класса
$geo = \Web\Geo::instance();
Класс Geo использует фабричную оболочку Prefab , поэтому вы можете получить один и тот же экземпляр этого класса в любой точке вашего кода.
tzinfo
Возвращает информацию об указанном часовом поясе Unix
array tzinfo ( string $zone )
Этот метод принимает любые поддерживаемые часовые пояса и возвращает следующий массив:
array (size = 5):
- offset : смещение часового пояса, измеренное относительно GMT.
- country : код страны ISO 3166-1-alpha-2 согласно PHP DateTimeZone :: getLocation
- latitude : широта согласно PHP DateTimeZone :: getLocation
- longitude : долгота согласно PHP DateTimeZone :: getLocation
- dst : логический флаг, отражающий изменение летнего времени.
Например:
/** @var \Web\Geo $geo */ $geo = \Web\Geo::instance(); var_dump($geo->tzinfo('Australia/Darwin')); /* returns: array (size=5) 'offset' => float 9.5 'country' => string 'AU' (length=2) 'latitude' => float -12.46667 'longitude' => float 130.83333 'dst' => boolean false */
location
Возвращать данные геолокации на основе указанного или автоматически определяемого IP-адреса
array|FALSE location ( [ string $ip = NULL] )
Пример:
$geo = \Web\Geo::instance(); var_dump($geo->location()); // locate client IP /* returns: array (size=12) 'request' => string '85.2.88.43' (length=10) 'credit' => string 'Some of the returned data includes GeoLite data created by MaxMind, available from <a href=\'http://www.maxmind.com\'>http://www.maxmind.com</a>.' (length=145) 'city' => string 'Lutry' (length=5) 'area_code' => string '0' (length=1) 'dma_code' => string '0' (length=1) 'country_code' => string 'CH' (length=2) 'country_name' => string 'Switzerland' (length=11) 'continent_code' => string 'EU' (length=2) 'latitude' => string '46.504902' (length=9) 'longitude' => string '6.6852' (length=6) 'region_code' => string '23' (length=2) 'region_name' => string '23' (length=2) */
weather
Возвращает данные о погоде на основе указанной широты / долготы
array|FALSE weather ( float $latitude, float $longitude, string $key )
Пример:
$geo = \Web\Geo::instance(); $loc = $geo->location('95.143.172.183'); // locate specific IP $key = 'SECRET'; // The API key var_dump($geo->weather($loc['latitude'],$loc['longitude'],$key)); /* returns: array (size=17) 'weatherCondition' => string 'n/a' (length=3) 'clouds' => string 'few clouds' (length=10) 'observation' => string 'ETHF 171620Z 33002KT 9999 FEW160 SCT210 05/00 Q1025 BLU+' (length=56) 'windDirection' => int 330 'ICAO' => string 'ETHF' (length=4) 'elevation' => int 181 'countryCode' => string 'DE' (length=2) 'cloudsCode' => string 'FEW' (length=3) 'lng' => float 9.2666666666667 'temperature' => string '5' (length=1) 'dewPoint' => string '0' (length=1) 'windSpeed' => string '02' (length=2) 'humidity' => int 70 'stationName' => string 'Fritzlar' (length=8) 'datetime' => string '2013-12-17 16:20:00' (length=19) 'lat' => float 51.116666666667 'hectoPascAltimeter' => int 1025 */