質問 > フロント機能 > magpierssの設定 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
harumoone |
投稿日時: 2011/9/13 23:20
対応状況: −−−
|
常連 登録日: 2011/7/14 居住地: 投稿: 66 |
magpierssの設定 ライブドアブログを読み込んでるのですが日付が1970年1月1日になってしまいます。
いろいろ日付をいじっても直りません。 ここで聞くべきことじゃないかも知れませんがよろしければ教えてください。 rss.phpの中身は次のとおりです。 よろしくお願いします。 <?php define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); //文字コード化け対策 require_once 'rss_fetch.inc'; $url = 'http://blog.livedoor.jp/kisetunohanakashin/atom.xml'; $rss = fetch_rss($url); $rss->items = array_slice($rss->items, 0, 5); $title = $rss->channel['title']; echo "<h2>$title</h2>\n"; echo "<ul>\n"; foreach ($rss->items as $item ) { $title = $item[title]; //記事更新日時 //$date = date('Y年m月d日 H時i分',strtotime($item['pubdate'])); $date_timestamp = $item[date_timestamp]; $date = Date("(Y/m/d)",$date_timestamp); $url = $item[link]; echo "<li><a href=\"$url\">$title</a> $date</li>\n"; } echo "</ul>\n"; ?> [EC-CUBE] 2.11.2 [レンタルサーバ] sixcore [OS] win 7 64bit [PHP] 5.2.6 [データベース] my sql 5.0.22 [WEBサーバ] わかりません [ブラウザ] ie8 |
flealog |
投稿日時: 2011/9/13 23:35
対応状況: −−−
|
仙人 登録日: 2008/6/10 居住地: 投稿: 485 |
Re: magpierssの設定
この部分で取得できてないのではないでしょうか? http://dezimo.com/web/rssphp.php ↑こんなブログ見つけました。 ご参考までに・・・
|
harumoone |
投稿日時: 2011/9/14 5:08
対応状況: −−−
|
常連 登録日: 2011/7/14 居住地: 投稿: 66 |
Re: magpierssの設定 お返事ありがとうございます。
上記のアドレスのphpでやっても結果は同じく1970年1月1日でした。 そのままコピーして下のように書きました。 よろしくお願いします。 <?php require_once('rss_fetch.inc'); //MagpieRSSロード define('MAGPIE_OUTPUT_ENCODING','UTF-8'); //読み込むRSSを配列に格納 $rssUrl=array( "http://blog.livedoor.jp/○○/atom.xml" ); //表示する記事の件数 $num=20; $HTMLbody =""; if($datacount !== 0){ foreach ($rssUrl as $no => $rss_url) { if ($rss_url != '') { //URLからRSSを取得 $rss = @fetch_rss($rss_url); if ($rss != NULL) { for ($i=0; $i<count($rss->items); $i++) { //サイトのタイトルをitemsに格納 $rss->items[$i]["site_title"] = $rss->channel["title"]; $rss->items[$i]["site_link"] = $rss->channel["link"]; } //itemsだけ別配列に格納 $rssItemsArray[] = $rss->items; } } } $concatArray = array(); if (is_array($rssItemsArray)) { for($i=0;$i<count($rssItemsArray);$i++){ //配列を統合する $concatArray = array_merge($concatArray,$rssItemsArray[$i]); } foreach ($concatArray as $no => $values) { //「RSS広告は除外する」 if(preg_match("/PR:/", $values["title"])){ }else{ //RSSの種類によって日付を取得 if($values['published']){$date = $values['published'];} elseif($values['created']){$date = $values['created'];} elseif($values['pubdate']){$date = $values['pubdate'];} elseif($values['dc']['date']){$date = $values['dc']['date']; } $date=date("Y-m-d",strtotime($date)); $title=$values["title"]; $link=$values["link"]; $site_title=$values["site_title"]; $site_link=$values["site_link"]; //記事ごとに必要な項目を抽出 $rssArray[]=array($date, $title, $link, $site_title, $site_link); } } //配列をユーザー定義関数でソート if ($rssArray) { usort($rssArray, 'cmp'); } if (count($rssArray) > $num) { $count=$num; } else { $count=count($rssArray); } //必要な件数分だけHTML整形 for ($i=0; $i<$count; $i++) { $date=date("Y年m月d日",strtotime($rssArray[$i][0])); $title=$rssArray[$i][1]; $link=$rssArray[$i][2]; $site_title=$rssArray[$i][3]; $site_link=$rssArray[$i][4]; $HTMLbody .="<ul>"; $HTMLbody .="<li><div class=\"blog_date\">[".$date."]</div><div class=\"blog_con\"><span class=\"entry_title\"><a href=\"".$link."\" target=\"_blank\">".$title."</a></span><br /><span class=\"blog_title\"><a href=\"".$site_link."\" target=\"_blank\">".$site_title."</a></span></div></li>"; $HTMLbody .="</ul>"; } } }else{ $HTMLbody .="まだ記事がありません。"; } //======================================================= // 多次元配列ソート用比較関数 // この場合は配列の1番目の項目を降順にソート //======================================================= function cmp($a, $b) { if ($a[0] == $b[0]) return 0; return ($a[0] > $b[0]) ? -1 : 1; } ?> <?=$HTMLbody ?> ―――――――――――――――――――――――――――――――――― |
flealog |
投稿日時: 2011/9/14 10:48
対応状況: −−−
|
仙人 登録日: 2008/6/10 居住地: 投稿: 485 |
Re: magpierssの設定 では、最初のコードに戻して、以下のRSSではどうでしょうか?
http://blog.livedoor.jp/kisetunohanakashin/index.rdf
|
harumoone |
投稿日時: 2011/9/14 19:07
対応状況: −−−
|
常連 登録日: 2011/7/14 居住地: 投稿: 66 |
Re: magpierssの設定 ありがとうございます。
2回目のコードに教えていただいたアドレスの組み合わせでできました。 甘えついでに、これにNEW!をつけたいのですが いろいろ試すと白いページになり参ってます。 かとおもい違うコードを使うとまた1970年になってしまいます^_^; もし何かあればご教授お願いします。 |
flealog |
投稿日時: 2011/9/14 22:37
対応状況: −−−
|
仙人 登録日: 2008/6/10 居住地: 投稿: 485 |
Re: magpierssの設定 素人の私のやり方は、やってみる > 失敗 の繰り返しで実装していく100打ちゃ当たる作戦なので、的確なアドバイスはできません^^;
すみません。 ちなみに私のサイトでは以下のコードでnewを表示させています。 (コピペしても絶対にうまく表示されませんので、理解して検索して実装してください。)
|
harumoone |
投稿日時: 2011/9/15 7:41
対応状況: −−−
|
常連 登録日: 2011/7/14 居住地: 投稿: 66 |
Re: magpierssの設定 いつもありがとうございます。
下記のコードで作ってみたのですが newが出ません。 <?php define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); //文字コード化け対策 require_once 'rss_fetch.inc'; $url = 'http://blog.livedoor.jp/**/index.rdf'; $rss = fetch_rss($url); $rss->items = array_slice($rss->items, 0, 5); $title = $rss->channel['title']; foreach ($rss->items as $item ) { $title = $item[title]; //記事更新日時 $date_timestamp = $item[date_timestamp]; $date = Date("m/d",strtotime($item['dc']['date'])); $week_timestamp = mktime(date(G), date(i), date(s), date("m"), date("d")-3, date("Y")); $new = "<img src=\"http://www.**.jp/user_data/packages/**/img/icon/new.gif\" width=\"43\" height=\"12\" alt=\"new\" />"; $url = $item[link]; if ($date_timestamp > $week_timestamp) { echo "<li>$date<a href=\"$url\">$title</a>$new</li>\n"; } else { echo "<li>$date<a href=\"$url\">$title</a></li>\n"; } } echo "</ul>\n"; ?> NEWが出ません。 $date_timestamp < $week_timestamp) にしたら出るので $week_timestamp = mktime あたりが原因かと思います。 うーーんなかなかすんなりうまくいかないものですね^_^; |
harumoone |
投稿日時: 2011/9/15 19:57
対応状況: 解決済
|
常連 登録日: 2011/7/14 居住地: 投稿: 66 |
Re: magpierssの設定 できました。
いろいろ試して結局 http://www.ishiiweb.com/labs/magpie/ このページを参考にできました。 ちょっとした違いで表示されたりされなかったり・・・ うきーーー!!となりますが できたときの達成感は最高ですね(^^♪ |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |