勉強しないかん。 下の記事は参考までにしてください。
これが検索してもわからず、私の愛用のリファレンスにもなかったので質問して教えてもらいました。
PHP4とPHP5でarray_slice というのがあるそうです。
<?php
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // "c", "d", "e" を返す
$output = array_slice($input, -2, 1); // "d" を返す
$output = array_slice($input, 0, 3); // "a", "b", "c" を返す
// 配列キーの違いに注意
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>
なんか、ちょっとみない間にまたおかしくなっていたアロマセミナーのお仕事をしているアクションケイさんのサイトのグーグルカレンダーを利用した部分が、予定が長くなっておりましたので、改良しました。というか、これが間違っていました!アホですな。
以下を使うとgoogle calender の予定を抜き出して順番に並べ替え、一定数(以下は6個)の予定を表示させることができます。 これを工夫して次は携帯サイトを作りたいと思っております。
<?php
error_reporting(1);
require('XMLLibrary.php');
$data = file_get_contents("http://www.google.com/calendar/feeds/1qkkqtv5eo3jimiidbltonpi1s%40group.calendar.google.com/public/basic");
$array = XML_unserialize($data);
$entry = $array['feed']['entry'];
$today = date("Y/m/d");
// 最初の要素で配列を作る
$datas = array();
$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 );//日付でならべかえる
$cnt = 0;
foreach ($datas as $key => $value) {
if ($cnt++ >= 6) { break; }
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;
}
?>
utf-8に変換する必要がなくなったみたいです。 ちょっと楽になりました。
php XML libraryって本当にありがたいものですね。
0 コメント :
コメントを投稿
コメントありがとうございます。