Skip to content

takatama/php-tenki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tenki-php

1週間分の天気予報をコンソールに表示するPHPスクリプトです。 コンソールから使います。1週間分の天気予報を表示します。 天気予報のデータは OpenWeatherMap から入手します。

インストール方法

$ git clone https://github.com/takatama/php-tenki
$ cd php-tenki
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar update

使い方

$ php tenki.php <場所,国>

例: 千葉県柏市のお天気

$ php tenki.php kashiwa,jp
Kashiwa, JP (lat:35.854439, lon:139.968887)
2014/12/27 Clear max:7.9 min:-0.4
2014/12/28 Clouds max:7.9 min:-1.8
2014/12/29 Rain max:5.2 min:-0.4
2014/12/30 Clear max:11.3 min:0.2
2014/12/31 Rain max:8.7 min:-0.5
2015/01/01 Rain max:10.1 min:-2.1
2015/01/02 Clear max:7.9 min:0.2

使った技術

OpenWeatherMap API

一日単位の天気予報データ(Daily Forecast Data)を使います。

例)千葉県柏市のデータ http://api.openweathermap.org/data/2.5/forecast/daily?q=kashiwa,JP

データの説明はこちらです。日本に合わせるために工夫が必要です。

  • 時刻はGMT。JPNに変換するため 9時間進める。
  • 温度は華氏。摂氏に変換するため 273.15 引く。
  • 小数点1桁だけでいいので、round 関数で四捨五入する。

ついでに、

function show_forecast($time_gmt, $weather, $temp_max_K, $temp_min_K) {
    $time_jpn = $time_gmt + 9 * 60 * 60;
    $temp_max_C = round($temp_max_K - 273.15, 1); //小数点第一位まで表示
    $temp_min_C = round($temp_min_K - 273.15, 1);
    $c = new Color();
    echo gmdate('Y/m/d', $time_jpn) . ' ' . $c($weather)->bold . ' max:' . $c($temp_max_C)->red . ' min:' . $c($temp_min_C)->blue . PHP_EOL;
}

Guzzle で REST API を利用する

最近はcURLよりGuzzleみたいです。JSONならこれだけで大丈夫。

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$url = 'http://api.openweathermap.org/data/2.5/forecast/daily?q=' . $city_and_country;
$client = new Client();
$json = $client->get($url)->json();

参考にした情報

About

A console application for displaying 7days weather forecast.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages