ここではGoogle Calendar APIを使ってDBに祝日を登録していきます。
サンプルソース
<?php // DB接続 $url = "localhost"; $user = "root"; $pass = "pass"; $db = "dbname"; $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); $holidays_url = sprintf( 'http://www.google.com/calendar/feeds/%s/public/full-noattendees?start-min=%s&start-max=%s&max-results=%d&alt=json' , 'outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com' , // 'japanese@holiday.calendar.google.com' , '2013-01-01' , // 取得開始日 '2013-12-31' , // 取得終了日 50 // 最大取得数 ); if ($results = file_get_contents($holidays_url)) { $results = json_decode($results, true); $holidays = array(); foreach ($results['feed']['entry'] as $val) { $date = $val['gd$when'][0]['startTime']; $title = explode('/', $val['title']['$t']); $holidays[$date] = trim($title[0]); } ksort($holidays); foreach ($holidays as $key => $value) { if (!($value == '振替休日')) { $sql = "INSERT INTO mtb_holiday (name, date) ". "VALUES ('".$value."','".$key."')"; mysql_query($sql, $link); } } }
解説
正確には元旦なら$dateに2012-01-01、$titleに元日 / Ganjitsu / New Year’s Day、が取れてくるので$titleを元旦だけにフォーマットしています。
また祝日が土曜日か日曜日に被ると振替休日 / Furikae kyūjitsu / Substitute Holidayが取れてくるので振替休日以外のものをDBに登録しています。
良かったら4~7行目を書き換えて利用してください。