また、プログラム的にもっさいところがあったことが判明しました! バカすぎです。 恥ずかしいです!
でも、おばさんは負けません!頑張ります。
次は場所とかを引っ張って携帯とかの表示に便利なように頑張ってみたいと思います。
ありがたいXMLライブラリーを使います。(IRONでリンク先はひらないので注意)
<?php
//エラーは表示させません!
error_reporting(1);
//XMLライブラリーを引っ張ってきます
require('XMLLibrary.php');
//googleカレンダーのRSSを指定
$data = file_get_contents("http://www.google.com/calendar/feeds/1qkkqtv5eo3jimiidbltonpi1s%40group.calendar.google.com/public/basic");
//xmlライブラリーの命令みたいです
$array = XML_unserialize($data);
//配列を作ります
$entry = $array['feed']['entry'];
//基準値用の本日の日付
$today = date("Y/m/d");
//配列にするdatasを準備します。まだ何も入っていません。
$datas = array();
//$entryの要素をカウントし、一個一個要素を入れてきます。
$count = count($entry);
for($i=0; $i<$count; $i++){
$tlong = strlen($entry[$i]['title']);
if($tlong>38){$entry[$i]['title'] = mb_strimwidth($entry[$i]['title'],0,37);
$cont[$i]['title'] = $entry[$i]['title']." ...";
}else $cont[$i]['title'] = $entry[$i]['title'];
$cont[$i]['content']=mb_strimwidth($entry[$i]['summary'],3,30);
array_push($datas,$cont[$i]['content']);
$cont[$i]['link'] = $entry[$i]['link']['0 attr']['href'];
}
//今日の日付より前の日付のものを削除します
foreach($datas as $i => $s) {
if (strtotime($s) < strtotime($today)) {
/* 配列から削除する */
unset($datas[$i]);
}
}
//並べ替えます
asort( $datas );//データの数を数えて、7個以上野場合はあるれた数を削除します。ここのところ間違っているので、こっちを見てください。
$nub = count($datas);
if ($nub>=7){$a = $nub-7;
unset($datas[$a]);
}
//印刷部分
foreach ($datas as $key => $value) {
print <<<ENTRY_PEINT
<p class="m"><a href="#" onclick="window.open('{$cont[$key][ 'link' ]}','javascript_1','height=250,width=700,resizable');">{$cont[$key]['title']}</a></p><p class="s">{$cont[$key]['content']}…</p></p>n
ENTRY_PEINT;
}
?>
なんと短いことでしょう!
http://www.actionk.co.jp/gcalender.php
utf-8で表示できます。 rssがutf-8になったみたいで文字変換の必要がなくなりました。
0 コメント :
コメントを投稿
コメントありがとうございます。