Googleカレンダーから祝日情報を取得。
PHPを使ってGoogleカレンダーが提供している祝日の情報を、配列として取得する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php //2012年の祝日を取得 $holidays = getHolidays(2012); //Googleカレンダーから祝日を取得 function getHolidays($year) { $holidays = array(); //Googleカレンダーから、指定年の祝日情報をJSON形式で取得するためのURL $url = sprintf( 'http://www.google.com/calendar/feeds/%s/public/full?alt=json&%s&%s', 'japanese__ja%40holiday.calendar.google.com', 'start-min='.$year.'-01-01', 'start-max='.$year.'-12-31' ); //JSON形式で取得した情報を配列に変換 $results = json_decode(file_get_contents($url), true); //年月日(例:20120512)をキーに、祝日名を配列に格納 foreach ($results['feed']['entry'] as $value) { $date = str_replace('-', '', $value['gd$when'][0]['startTime']); $title = $value['title']['$t']; $holidays[$date] = $title; } //祝日の配列を早い順に並び替え ksort($holidays); //配列として祝日を返す return $holidays; } ?> |
上記のコードで取得した祝日は、次の様に日にちをキーに格納されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/* Array ( [20120101] => 元日 [20120109] => 成人の日 [20120211] => 建国記念の日 [20120429] => 昭和の日 [20120503] => 憲法記念日 [20120504] => みどりの日 [20120505] => こどもの日 [20120716] => 海の日 [20120917] => 敬老の日 [20120922] => 秋分の日 [20121008] => 体育の日 [20121103] => 文化の日 [20121123] => 勤労感謝の日 [20121223] => 天皇誕生日 [20121224] => 振替休日 ) */ |
ただしGoogleカレンダーの祝日は正確ではない部分もあるので、利用の際には注意が必要です。