AZuSk's secret log

AZuSkの日々的Hack雑記

iCalendar形式の最低限の書式メモ

   

スポンサーリンク

hoge.secret.jp_300x250

先日、某HPの為にiCalendar形式のファイル出力phpを作ったのですが、
昨日も遅くまで機能追加していた次第です。

とりあえずメモ的な事
まずHTTPヘッダ
header(‘Content-Type: text/calendar; charset=utf-8’);
header(“Content-Disposition: inline; filename=filename.ics”);

内容xml
ヘッダ
 $header1 = “BEGIN:VCALENDAR\n”
 .”VERSION:2.0\n”
 .”PRODID:-//著作権など//大体こんなかんじ的な//JP\n”
 .”METHOD:PUBLISH\n”
 .”TZID:Asia/Tokyo\n”
 .”X-WR-CALNAME:カレンダーの名前\n”
 .”X-WR-RELCALID:32文字の適当ID(GUIDGenで生成)\n”
 .”X-WR-TIMEZONE:Asia/Tokyo\n”;
 $header2 = “X-WR-CALDESC:カレンダーの説明\n”;
 if (ENTITIESする?){
  mb_convert_variables(“HTML-ENTITIES”,”utf-8″,$header2);
 }
 print $header1.$header2;
ヘッダを分けたのはHTML-ENTITIESを$header2だけにしたいから。

続いてVevent
 if (ENTITIESする?){
  mb_convert_variables(“HTML-ENTITIES”,”utf-8″,$desc);
  mb_convert_variables(“HTML-ENTITIES”,”utf-8″,$summary);
 }
 print “BEGIN:VEVENT\n”;
 //print “UID:\n”;//省略
 print “DESCRIPTION:$desc\n”;
 print “DTSTART:$date\n”;
 //print “DTEND:$date\n”;//END付けるとgoogleカレンダーで解析エラーとなった?
 print “SUMMARY:$summary\n”;
 print “END:VEVENT\n”;
$sammaryがタイトルで、$descが内容。$dateは20090101や20091231のような文字列。

最期に
 $footer = “BEGIN:VTIMEZONE\n”
 .”TZID:Asia/Tokyo\n”
 .”X-LIC-LOCATION:Asia/Tokyo\n”
 .”BEGIN:STANDARD\n”
 .”TZOFFSETFROM:+0900\n”
 .”TZOFFSETTO:+0900\n”
 .”TZNAME:JST\n”
 .”DTSTART:19700101T000000\n”
 .”END:STANDARD\n”
 .”END:VTIMEZONE\n”
 .”END:VCALENDAR\n”;
 print $footer;
正確には”BEGIN:VTIMEZONE\n”~”END:VTIMEZONE\n”はフッタでは無いので、ヘッダとVeventの間に有ってもよいのだが、便宜上最期にしておいた。

iCalの最低限の書式をメモしておく。

Powered by ScribeFire.

未分類

スポンサーリンク

hoge.secret.jp_336x280

hoge.secret.jp_336x280

Message

メールアドレスが公開されることはありません。

CAPTCHA


  関連記事

no image
今が旬の検索ワード@楽天

喪中はがき 無料 テンプレート りんご 仮装 ハロウィン 子供 ハロゲンヒーター …

wordpressのテーマをstinger5にして最初にカスタマイズした所

wordpressのテーマをstinger5に変更しました。
SEOに強く、アフィリエイト効果も高い洗練されたテーマですが、読者がもっと読み易くなるポイントがあります。
ほんの少しの書き換えで変わるのでご紹介します。
ソースはコピペで簡単に改造できますので初心者でも簡単です。

no image
育児消耗品の価格調査~アマゾンvs楽天

アマゾンは送料無料 楽天は各ショップ毎に送料が違うので、それも考慮して買いましょ …

no image
携帯サイトのaccesskeyの数字画像を表示させるには

携帯サイトで見るaタグのaccesskeyについて調べてみた。 よくアクセスキー …

no image
トップページをブログ形式にしてみるテスト

旧geocityesのブログも忘れ去られ、現auOneも更新することが稀になりつ …

no image
ppmを使ってXAMPPにImage-Magickをインストール

ググって調べたら XAMPPのapacheのverにあったperl-addonを …

no image
東北の被災者に支援物資をと考えている方ちょっと待ってください

ためになる記事見つけました。 東北の被災者に支援物資をと考えている方ちょっと待っ …

no image
OnMouseOverでリンク先のスクリーンショットを・・・

素直に公開APIにリンクした方がスマートです。はい、これ、結論。 スクリーンショ …

no image
オオカミのオシッコの匂いで猿の被害を防げるんだって

猿って襲ってくるとこわいですよね。 畑を荒らす猿や鹿の被害を減らす狼のオシッコの …

no image
ブログ通信簿のブログパーツを一時的に付けてみる

右側の最近のコメントの下に表示しています。