«« 「借りぐらしのアリエッティ」見てきました! | 2010年度第2四半期におけるお勧めアニメあれこれ »»

自分のホームページへ関連するニュースを載せるには

2010年7月18日

このエントリーをはてなブックマークに追加 Clip to Evernote
自分のホームページやオンラインショップにも、『ワールドドメインニュース』のような、記事に関連するニュースを掲載してみましょう!Google newsとPHP向けRSSリーダーRSSreaderlibを利用したニュース記事の組み込み方をご紹介します。


ホームページへ訪れて下さった方へのちょっとしたお楽しみとして、ホームページと関連したニュースを掲載するのも面白いかもしれません。

例えば、下はドメイン販売サイト、お名前.comの例です。
100718onamae_com.png
お名前.comでは、ホームページの中央にて『ワールドドメインニュース』として、ドメインに関連したニュースを掲載しています。
私は関係者ではないので、『ワールドドメインニュース』を入れて実際にお名前.comでドメインの売り上げが伸びたかどうかは知りません。
しかしながら、『ワールドドメインニュース』欄はドメインに関する話題作り程度には役にたっていそうな気がします。

で、今回の話は、自分のホームページやオンラインショップにも、『ワールドドメインニュース』のような、記事に関連するニュースを掲載してみましょう!という内容です。

ニュースをショップに載せたオンラインショップのサンプルとして、今回は『モバイルルーターストア( http://kuze.tsukaeru.jp/store/mobilerouter/ )』へ、無線ルーター記事を掲載するようにしてみることにします。

100718_2rssnews.png
そこ!どうでもいいサンプルな…とか冷たい事言わない!

さて、まずは、素材とツールのご確認をお願いします。
素材(ニュース取得元)には、各新聞社のホームページから美味しい所をつまみどりするGoogle newsを利用します。

http://news.google.co.jp/

ツール(記事を取得するシステム)には、私が作成したRSSreaderlibを組み合わせます。

http://kuze.tsukaeru.jp/tools/RSSreaderlib/

では、調理開始!

1.Google Newsで呼び出す検索キーワードをUTF-8でURLエンコードします。
ちなみに、エンコードするには、『Web便利ツール/URLエンコード・デコードフォーム - TAG index Webサイト』を使うのが便利!
http://www.tagindex.com/tool/url.html

2.1番で作成したURLエンコードした内容を、Google Newsから検索結果のRSSを呼び出す為のURL( http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&q= )とドッキングさせます。

今回の場合ですと「 http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&q=%e7%84%a1%e7%b7%9aLAN 」となります。

『Googleニュース日本語版のAtom/RSSフィード - daily gimite』を参考にさせていただきました。ありがとうございます。

3.RSSreaderlibをサーバにインストールした上で、RSSreaderlibからニュース記事を呼び出す為のモジュール(インクルードファイル)を作成します。
今回の場合ですと、ソースコードはこんな感じになります。

 

<li class="widget">
 

無線ルーターニュース

<?php require_once "/var/www/vhosts/kuze.tsukaeru.jp/(RSSreaderlib.php の保存先を指定)"; $temp = "/var/www/vhosts/kuze.tsukaeru.jp/httpdocs/store/temp"; $RSSReader = new RSSReader(CALL_MAKE_TEMPFILE_FOLDER, $temp); $RSSReader -> RSSReader( 'utf-8', '/var/www/vhosts/kuze.tsukaeru.jp/httpdocs/(MagpieRSS/rss_fetch.inc の保存先を指定)', 'http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&q=%e7%84%a1%e7%b7%9aLAN' ); $max = ($RSSReader -> getContentsCount() > 5) ? 5: $RSSReader -> getContentsCount(); for($i = 0; $i < $max; $i++) { echo " getContentsURL($i)."\">".$RSSReader -> getContentsTITLE($i)."
\n"; } ?>
>>提供:Googleニュース
</li>

4.サイトによっては、個別記事へのリンクを禁止しているニュースサイトもございます(例:日本経済新聞等)
このようなリンクの禁止は、ぶっちゃけ法的根拠はありません(無断でリンクを張ることは著作権侵害となるでしょうか。:社団法人 著作権情報センター)
ですが、後々揉めること自体が面倒な人は、リンクを外すコードを組み込んでみましょう(後で解説)。

5.最後の仕上げ!「ニュースは表示されるけど、リンク先が切れてる!」に対応しましょう。
ニュースサイトは、昔の記事を直ぐ非表示にする傾向がありますので、fopenを利用してリンクをチェックするようにしましょう。
なおPEARが使えるサーバでは、HTTP_Request命令を用いる事でより高速に処理出来るらしいです(参照:-OASIS- - 今日のメモ「URLが存在するか調べる(php)」)。
...但し、レンタルサーバでは、セキュリティに配慮して、この手の外部アクセス自体を拒否するPHP設定になっているところがあります。
私の利用している『某共用サーバ』も、その手のサイトの一つなようなので、あきらめましょう。
・・・という点を踏まえて修正したのが以下のコードです。

 

<li class="widget">
 

無線ルーターニュース

<?php require_once "/var/www/vhosts/kuze.tsukaeru.jp/(RSSreaderlib.php の保存先を指定)"; $temp = "/var/www/vhosts/kuze.tsukaeru.jp/httpdocs/store/temp"; $NGsite = array( "www.nikkei.com", "nikkei.co.jp" ); $RSSReader = new RSSReader(CALL_MAKE_TEMPFILE_FOLDER, $temp); $RSSReader -> RSSReader( 'utf-8', '/var/www/vhosts/kuze.tsukaeru.jp/httpdocs/(MagpieRSS/rss_fetch.inc の保存先を指定)', 'http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&q=%e7%84%a1%e7%b7%9aLAN' ); $max = ($RSSReader -> getContentsCount() > 5) ? 5: $RSSReader -> getContentsCount(); for($i = 0, $set = 0; $set < $max; $i++) { $blnWrite = 0; // NGサイトかどうかチェック for($j = 0; $j < count($NGsite); $j++) { if(strpos($RSSReader -> getContentsURL($i), $NGsite[$j]) > -1) { $blnWrite = 1; $j = count($NGsite); } else { // リンク先が存在するかどうかチェック /* $fh = @fopen($RSSReader -> getContentsURL($i)); if($fh) { fclose($fh); } else { $blnWrite = 1; $j = count($NGsite); } */ } } // リンク先に問題がなければ表示 if($blnWrite == 0){ echo "
  • getContentsURL($i)."\" taeget=\"_blank\">".$RSSReader -> getContentsTITLE($i)."
  • \n"; $set++; } if($RSSReader -> getContentsCount() <= $i) { $set = $max; } } ?>
    >>提供:Googleニュース
    </li>

    6.あとは、こうして出来たニュースガジェットを、あなたのホームページのどこかへ貼付けましょう。
    100718_3rssnews.png
    以上、よろしければご参考ください。




    投稿者 kuze : 2010年7月18日 01:33


    ■このエントリーに関連した記事

    ■「実用ソフト&サイト」カテゴリの最新記事

    «« 「借りぐらしのアリエッティ」見てきました! | 2010年度第2四半期におけるお勧めアニメあれこれ »»


    自己紹介
    PHPやVBによるコーディングやシステムエンジニアを仕事にしています。
    主にiPhoneアプリの紹介やWeb開発などのPC系の話題と、アニメやゲームなどのサブカルな話題を取り扱っています。

    [PR]

    Twitter
    >> その他のtwitter

    instagram

    カテゴリ

    最近のエントリー

    最近掲載した画像
    • バーチャルYouTuberのキズナアイちゃんがどうやって動いているのか気になる
    • ニトリで購入した『ひじまでフラットになる座椅子「テリーGY」』は、手すりがやっぱりイイ
    • ニトリで購入した『ひじまでフラットになる座椅子「テリーGY」』は、手すりがやっぱりイイ
    • ニトリで購入した『ひじまでフラットになる座椅子「テリーGY」』は、手すりがやっぱりイイ
    • 音の正規化(ノーマライズ)は、無料でこなそうとしたら未だ面倒
    • Panasonicの冷蔵庫「NR-B149W-S」で静音を取り戻した!
    • クラタスvsメガボッツ戦見たけど、現実世界巨大ホビーロボについては日本文化じゃなくなるかも(ネタばれ)
    • (現在作業中)ブログをレスポンシブデザインに適応させるためにしていること
    • (現在作業中)ブログをレスポンシブデザインに適応させるためにしていること
    • (現在作業中)ブログをレスポンシブデザインに適応させるためにしていること
    • アパートの鍵穴が壊れたら、鍵屋を呼ばずに不動産屋を呼ぶべき
    • アパートの鍵穴が壊れたら、鍵屋を呼ばずに不動産屋を呼ぶべき

    RSS
    更新情報はRSSをご利用下さい
    サイトマップ