ここでは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行目を書き換えて利用してください。
