PHPを利用してRSSを取得&表示する
PHPを利用してRSS・xmlファイルを取得し、ブログの最新記事一覧を表示してみました。jQuery Mobileを使用したのでスマートフォンからでも快適に見れるようになっています。
プレビュー
jQueryMobileとPHPのsimplexml※おすすめQRコード読み取りアプリ
お父さんQR
カテゴリ: ユーティリティ
サイズ: 2.3 MB
価格: 無料
ポイント
【file_get_contents】ファイルの内容を全て文字列に読み込む
<?php $url = 'rss・xmlファイルのパス'; $rss = file_get_contents($url); $xml = simplexml_load_string($rss); ?>
参考:
コード
index.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>jQueryMobileとPHPのsimplexml</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css"> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script> <style> .ui-li-aside { width: auto; } .ui-li .ui-btn-text a.ui-link-inherit { white-space: normal; } </style> </head> <body> <div data-role="page" id="index"> <div data-role="header"> <a href="page2.php" data-icon="arrow-r" class="ui-btn-right">次へ</a> <h1>最新ブログ記事</h1> </div> <div data-role="content"> <ol data-role="listview" data-inset="true" data-theme="c"> <li data-role="list-divider">最新記事</li> <?php $rss = simplexml_load_file("http://d.hatena.ne.jp/vinton/rss"); $i = 0; foreach($rss -> item as $item){ if($i>5)break; $dc = $item ->children('http://purl.org/dc/elements/1.1/'); $link = $item ->link; $title = $item ->title; $date = date("Y/m/d",strtotime($dc -> date)); echo "<li><a href=\"$link\" title=\"$title\" target=\"_blank\"><p class=\"ui-li-aside\">$date</p>$title</a></li>\n"; } ?> </ol> </div> <div data-role="footer"> <h4>© 2012 vinton </h4> </div> </div> </body> </html>
page2.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>jQueryMobileとPHPのsimplexml</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css"> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script> <style> .ui-li-aside { width: auto; } .ui-li .ui-btn-text a.ui-link-inherit { white-space: normal; } </style> </head> <body> <div data-role="page" id="page2"> <div data-role="header"> <h1>Yahoo! トピックス</h1> <a href="index.php" data-icon="back">戻る</a> <a href="page3.php" data-icon="arrow-r" class="ui-btn-right">次へ</a> </div> <div data-role="content"> <ol data-role="listview" data-inset="true" data-theme="c"> <li data-role="list-divider">RSSを表示</li> <?php $url = 'http://rss.dailynews.yahoo.co.jp/fc/rss.xml'; $rss = file_get_contents($url); $xml = simplexml_load_string($rss); $channel = $xml->channel; foreach ($channel->item as $item) { $link = $item->link; $title = $item->title; $date = date("Y年m月d日"); echo "<li><a href=\"$link\" title=\"$title\" target=\"_blank\"><p class=\"ui-li-aside\">$date</p>$title</a></li>\n"; } ?> </ol> </div> <div data-role="footer"> <h4>© 2012 vinton </h4> </div> </div> </body> </html>
page3.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>jQueryMobileとPHPのsimplexml</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css"> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script> <style> .ui-li-aside { width: auto; } .ui-li .ui-btn-text a.ui-link-inherit { white-space: normal; } </style> </head> <body> <div data-role="page" id="page3"> <div data-role="header"> <h1>アップル - ホットニュース</h1> <a href="page2.php" data-icon="back">戻る</a> </div> <div data-role="content"> <ol data-role="listview" data-inset="true" data-theme="c"> <li data-role="list-divider">RSS から取得して表示</li> <?php $url = 'http://www.apple.com/jp/main/rss/hotnews/hotnews.rss'; $rss = file_get_contents($url); $xml = simplexml_load_string($rss); $channel = $xml->channel; foreach ($channel->item as $item) { $link = $item->link; $title = $item->title; $date = date("Y年m月d日"); echo "<li><a href=\"$link\" title=\"$title\" target=\"_blank\"><p class=\"ui-li-aside\">$date</p>$title</a></li>\n"; } ?> </ol> </div> <div data-role="footer"> <h4>© 2012 vinton </h4> </div> </div> </body> </html>