RSSブロガーの日時表示について

このQ&Aのポイント
  • RSSブロガーを利用して日時表示を行いたいが、一部の日付が表示されず空白になる問題が発生している。
  • 表示件数が5件の場合、1件は正しく表示されるが、残りの4件は日付が1970/01/01と表示される。
  • 空白部分を非表示にする方法はあるか。
回答を見る
  • ベストアンサー

RSSブロガーの日時表示について

レッツPHPさんのRSSブロガーを利用しております。 http://loglog.jp/~php/net/ 機能に日時を表示させたく以下のソースを記入しました 27行目付近より for ($i=0; $i<$num; $i++) { $val = $r->getItems(); $title = mb_convert_encoding(strip_tags($val[$i]['title']), $code, "UTF-8,EUC-JP,SJIS"); $desc = mb_convert_encoding(strip_tags($val[$i]['description']), $code, "UTF-8,EUC-JP,SJIS"); $link = htmlspecialchars($val[$i]['link']); $date = $val[$i]['dc:date']; $time = (isset($val[$i]['pubdate'])) ? strtotime($val[$i]['pubdate']) : strtotime(str_replace("T", " ", substr($val[$i]['dc:date'], 0, 19))); $koushin = date("Y/m/d", $time); // 内容 echo <<<B <tr bgcolor="#ffffff"><td><small> $koushin <a href="$link" target=_new>$title</a><br> $desc </small></td></tr> B; } これで日時も表示が出来たのですが、RSSブロガーの最大表示件数を5件にします。 例えば1件ブログなどで書き込みをこのRSSブロガーの部分で表示をすると1件は日時とタイトルが表示されるのですが、残りの4件の日付が1970/01/01 と表示されタイトル無しの表示が4つ並びます。 ↓このような感じ 2008/02/14 テスト 1970/01/01  (空白) 1970/01/01  (空白) 1970/01/01  (空白) 1970/01/01  (空白) これだと見た目が悪いので空白部分の日時と空白部分は表示させたくないのですが、何か良い方法はございますか宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

単に、$titleおよび$descが空のときはechoをスキップするようif文を追加すればよいのでは。こんな感じ: if ( trim( $title.$desc ) == "" ){ continue; } echo略

active123
質問者

お礼

有難う御座います。思った形になりました。ありがとうございます。

関連するQ&A

  • RSSブロガーに日時を表示させたい

    レッツPHPのRSSブロガーで、更新された文章のタイトルの左側に更新日時を表示させたいのですが、新着ブロガーのソースを見て色々やりましたがうまくいきません。 http://php.s3.to/net/#amezo 参考になるサイトや、方法を教えて頂けないでしょうか? 宜しくお願いします。

    • 締切済み
    • PHP
  • RSSデータ表示に関しまして【ギブアップです】

    先週からRSSデータの表示について作業が止まっております。 ご存知でしたら、皆様のお知恵をお借りしたいと思い質問させて頂きました。 複数のブログの記事を更新時間順に表示したいと思っています。 こんな感じです。 ⇒ http://blogs.yahoo.co.jp/FRONT/update.html 例えば、同じBLOGから数分後に2度更新されたら、その記事タイトルも表示します。 ※1BLOG 1エントリーの表示ではなく、1BLOG 複数エントリーの表示が可能であり、  あくまで更新時間順に表示します。 また、表示件数も指定したいと思っています。 このようなPHPのサンプルがあるサイトなどご存知でしたら教えてください。 お願い申し上げます。 ちなみに現在作成できているPHPのソースは以下通りで、更新時間順に記事を表示できますが、 記事の表示件数が指定できないので全ての記事を表示してしまいます。 1BLOG5つの記事を読み込んでいき、ソートし表示しています。 表示件数の指定方法がわからず、またプログラムも初めてなので無茶苦茶な作りになっています。 上述のPHPサンプルか以下ソースで表示件数の指定および配列の操作についてご教示お願いします。 <?php require "xxx/yyy/RSS.php"; // 表示データ用配列の初期化 $showArray = array(); // RSSサイトURL(複数可) $rdf[] = "http://xxxxxxxxx/xxxxx/"; $rdf[] = "http://yyyyyyyyy/yyyyy/"; // 変数初期値 $num = 0; $datacnt = 0; // サイト文字コード(SJIS、EUC-JPなど) $code = "SJIS"; // 日付ソート関数 function cmp ($a, $b) { $a = (isset($a['items'][0]['pubdate'])) ? strtotime($a['items'][0]['pubdate']) : strtotime(str_replace("T", " ", substr($a['items'][0]['dc:date'], 0, 19))); $b = (isset($b['items'][0]['pubdate'])) ? strtotime($b['items'][0]['pubdate']) : strtotime(str_replace("T", " ", substr($b['items'][0]['dc:date'], 0, 19))); if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } // RSS取得・解析 foreach ($rdf as $k=>$rssurl) { $r =& new XML_RSS($rssurl); if (PEAR::isError($r)) continue; $r->parse(); if ($r->getChannelInfo()) $ch[$k] = $r->getChannelInfo(); $ch[$num]['items'] = $r->getItems(); $num = $num + 1; } usort($ch, "cmp"); for ($i=0; $i<$num; $i++) { // サイト名 $site_title = htmlspecialchars(mb_convert_encoding($ch[$i]['title'], $code, "UTF-8,EUC-JP,SJIS")); // サイトURL $site_link = $ch[$i]['link']; for ($n=0; $n<5; $n++) { // 記事タイトル $title = mb_convert_encoding(strip_tags($ch[$i]['items'][$n]['title']), $code, "UTF-8,EUC-JP,SJIS"); // 記事内容 $desc = mb_convert_encoding(strip_tags($ch[$i]['items'][$n]['description']), $code, "UTF-8,EUC-JP,SJIS"); // 記事URL $link = htmlspecialchars($ch[$i]['items'][$n]['link']); // 記事更新時間(UNIXタイム $time = (isset($ch[$i]['items'][$n]['pubdate'])) ? strtotime($ch[$i]['items'][$n]['pubdate']) : strtotime(str_replace("T", " ", substr($ch[$i]['items'][$n]['dc:date'], 0, 19))); // 記事更新日 http://php.net/date $date = date("m/d H:i", $time); $dummy = date("m", $time) . date("d", $time) . date("H", $time) . date("i", $time); $showArray[$dummy] = "<FONT SIZE=2><a href=\"" . $link . "\" target=\"_new\" title=\"" . $desc . "\">" . $title . "</a>&nbsp;【<a href=\"" . $site_link . "\" target=\"_new\">" . $site_title . "</a>】(" . $date . ")</FONT><br>"; $datacnt = $datacnt + 1; } } // 時間順でソート(必要なのかは良くわからないが上手くいかなかったりする...) krsort($showArray); // HTML表示させる echo(join('',$showArray)); ?>

    • ベストアンサー
    • PHP
  • RSSがgoo RSSリーダーV3で表示されない

    DBの内容をRSSで出力しgoo RSSリーダーで表示しようとさせていますが、うまくいきません。具体的にはgoo RSSリーダーでRSSサイトの登録はできるのですが、選択すると上のペイン(タイトルが表示されるところ)は空白で、下のペイン(内容が表示されるところ)はxmlのソースが生で表示されます。他のRSSサイトの表示は問題ありません。(インターネット/イントラネット) 出力方法はイントラサーバーのDB(Accessファイル)からASPがデータを成形後RSSファイルを出力させるものです。(下記に出力後のソースを記入します。一部データをハイフンでおきかえています) <?xml version="1.0" encoding="Shift_JIS"?> <rss version="2.0"> <channel> <title>更新情報RSS</title> <link>http://---.html</link> <description>---をチェック</description> <language>ja</language> <pubDate>Fri,2 Feb 2007 13:49:00 +0900</pubDate> <generator>------</generator> <item> <title>タイトル1</title> <link>http://---.html</link> <description>内容紹介1</description> <pubDate>Thu,1 Feb 2007 11:39:29 +0900</pubDate> </item> <item> <title>タイトル2</title> <link>http://---.html</link> <description>内容紹介2</description> <pubDate>Thu,1 Feb 2007 11:45:29 +0900</pubDate> </item> </channel> </rss> IE6.0でソースの表示はできるのでXML構造には問題ないと思います。アドバイスよろしくお願いします。

    • 締切済み
    • XML
  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP
  • 自分のHPにRSSを表示させたい

    試しに、h●●p://www.okinawainfo.net/rss10.xmlを表示させたく htdocs内のrss.phpファイルに <dl> <?php $rss = simplexml_load_file("h●●p://www.okinawainfo.net/rss10.xml"); $i = 0; foreach ($rss->channel->item as $item) { if( $i++ == 5 ) { break; } $link = $item->link; $title = $item->title; $date = date('Y.m.d', strtotime($item->pubDate)); $desc =$item->description; echo '<dt>' . $date . '</dt>'; echo '<dd><a href="' . $link . '" target="_blank">' . $title . '</a></dd>'; } ?> </dl> と、打ち込みました。 ですが、エラーが出ます。 エラーは… Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 localhost 2011/12/09 4:19:28 Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 ↑と出ます。 何故でしょうか><

  • MagpieRSSを使ってrss取得の際の表示件数

    MagpieRSSを使ってrssを取得したく下記のphpを作成しました。 <?php define('MAGPIE_OUTPUT_ENCODING','UTF-8'); require_once('rss_fetch.inc'); $url="xxxx.rdf"; $rss = fetch_rss($url); foreach($rss->items as $item){ foreach($item[dc] as $key => $daytime){ if($key == "date"){ $rssdate = strtotime("$daytime"); $today = strtotime(date("Y/m/d H:i")); } if($rssdate > $today){ print("$item[title]"); } } } ?> 過去から未来の予定が書いてあるRSS(rdf)があり、 現在の時間のデータを取得して、未来の予定のを表示したいです。 現在、print("$item[title]");で未来の予定がズラっと取得できる状態です。 そして、ここからが問題なのですが、 ここ(print("$item[title]");)の表示を最新の1件にしたいのですが、どうしてもうまくいきません。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • 自作RSSリーダでライブドアブログを読み込む

    自作のRSSリーダーを作ったのですが、ライブドアブログの更新時間が全て1970-01-01になってしまいます。PHPで if ($item['dc']['date'] != '') { $dt = parse_w3cdtf($item['dc']['date']); } else if($item['pubdate'] != '') { $dt = strtotime($item['pubdate']); } else { $dt = time(); } といった感じにしています。何が悪いのかわからないので教えて下さい。

    • 締切済み
    • PHP
  • functionについて

    こんばんは。お世話になっております。 自分の勉強不足を披露してしまうようでお恥ずかしいのですが、レッツPHPさんの「新着ブロガー」 http://php.s3.to/net/#rss を1件のみの表示とするよう設定し、検索結果として自分のソース内にあるwhileの中に、include("./rss/rssup.php"); と記載しているのですが、検索結果を実行させたとき、レッツPHPさんの「rssup.php」ソース内の、 // 日付ソート関数 function cmp ($a, $b){ $a = (isset($a['items'][0]['pubdate'])) ? strtotime($a['items'][0]['pubdate']) : strtotime(str_replace("T", " ", substr($a['items'][0]['dc:date'], 0, 19))); $b = (isset($b['items'][0]['pubdate'])) ? strtotime($b['items'][0]['pubdate']) : strtotime(str_replace("T", " ", substr($b['items'][0]['dc:date'], 0, 19))); if ($a == $b) return 0; return ($a > $b) ? -1 : 1; }//※※ ※印のところでエラーが表示されてしまいます。 先にも申したように、自分の知識のなさを告知するようで大変お恥ずかしいとは思いながらも、調べていても解決する事が出来ず、あえて投函させていただきました。 お忙しい中恐縮ですが、アドバイスなど頂戴出来たら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • RSSの更新がされない

    レッツPHPさんのRSSブロガーを利用しております。 http://loglog.jp/~php/net/ ブログの新着情報をこのRSSブロガーで表示しているのですが、ブログの更新や記事の削除などをしてもこのRSSブロガーが読み込まなく、前のタイトルが表示されたままです。時間がたってもやはり更新されないようで、これってなんででしょうか?通常更新される時間など決まりはあるのでしょうか?お分かりになるかた宜しくお願い致します。

    • 締切済み
    • PHP
  • RSS2.0の書き方

    自分のHPのRSSフィード(RSS2.0)を書いたのですが、RSSリーダー(RSSリーダーは既にある前提)で何故か読めません。どこが悪いのか、御指摘いただければ幸いです。 ・RSSフィード名:rss.xml(rss.txtで下記のものを作成して、utf-8に変換してから、拡張子を.txt -> .xmlに変更) ・TOPのHTMLファイルのheadタグ内に以下を記述して、RSSフィードの置いてある場所を指定 : <link rel="alternate" type="application/rss+xml" title="RSS" href="[RSSフィードのあるアドレス]" /> ・RSSフィードの内容: <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xml:lang="ja"> <channel> <title>[サイトのタイトル]</title> <link>[サイトのアドレス]</link> <description>[サイトの紹介、説明文]</description> <language>ja</language> <item> <title>[エントリーのタイトル]</title> <link>[エントリーのアドレス]<link> <guid isPermaLink="true">[エントリーのアドレス]</guid> <category>[エントリーのカテゴリー]</category> <pubDate>[作成日時]</pubDate> <description><[エントリーの紹介文]></description> </item> </channel> </rss> (注)[作成日時]は、Wed, 10 Mar 2010 23:32:13 +0900 のように記述しています。 以上なのですが、何が駄目なのでしょうか? よろしくお願い致します。

    • 締切済み
    • XML

専門家に質問してみよう