私はPHPもMySQLも超絶初心者で、phpMyAdminなんかもほとんど触ったことがありません。
でもネットの情報を見るだけで、2日しかかからずにごく簡単なアンテナサイトをつくることができました。
復習をかねて、手順などまとめておきます。
1日目
1日目はPHPのみでRSS情報をブラウザで表示するところまで試しました。
今回想定する環境
さくらのレンタルサーバ スタンダードプラン
PHPバージョン 5.6
使用ライブラリ MagpieRSS
事前準備など
想定する環境の準備
PHPが動作するサーバが必要です。
今回はさくらのレンタルサーバ スタンダードプランで行いました。
RSS情報の中身を読む
例えばですが、https://playrust.com/feed/なんかをFirefoxでview-source:なんかしてみるとRSS情報の平文が読めます。
全てを理解する必要はありませんが、データ構造と、どのようなデータが含まれているかについてを把握しておく必要があります。
含まれていないデータについては。RSS情報から引っ張ってアンテナサイトに表示することはできません。
アンテナサイトを構築する上で、特に重要なのは次のものでしょう。
- サイトのタイトル
- サイトのindexページリンク
- 記事のタイトル
- 記事のリンク
- 投稿日
- 内容
ライブラリを用意する
RSS情報はそのままだとただのXML文で、PHPで扱うデータとしては役に立ちません。
RSS情報を使用するには、RSSパーサのライブラリを使うのが手っ取り早いです。
ちなみに私はMagpieRSSを使用しました。
今回はphpファイルの配置先を
/home/***/site_root/antenna_root/hoge直下
とした場合、ライブラリの配置先は
/home/***/site_root/antenna_root/直下
としています。
構築の流れ
想定する仕組み
今回構築する簡単なアンテナサイトはデータベースを用いず、アンテナサイトのページを表示するたびにRSS情報を取得、パースしてHTML文化するという最も簡単な手法を用います。
この手法で構築するアンテナサイトのデメリットは、アクセス集中に弱く、そもそもページの表示に時間がかかることにあります。また、データをキャッシュしていないので、RSS情報の大元がダウンしているとページの表示ができなくなります。
ソースコード:index.php
PHPコードの部分は下記の通りです。
channel['title']; //タイトル取得
$description = $rss -> channel['description']; //本文取得
/**
* 以下、ページ出力部分
*/
echo "アンテナ
";
echo "";
//RSSタイトルとその説明文を出力
echo "";
echo "".$title."
\n";
echo "".$description."
\n";
//記事部分の出力
echo "\n";
$number = 0;
foreach($rss -> items as $item){
$number++;
//日付取得&RSSの種類による取得エラー補正
$date = $item['date_timestamp'];
if($date == ""){
$date = strtotime($item['dc']['date']);
}
//各種代入
$title = $item['title']; //タイトル代入
$description = $item['description']; //本文代入
$url = $item['link']; //URL代入
//記事出力
echo "- ".date('Y年m月d日 G:i',$date).'
'.$title.'
'.$description." \n";
if($number === 4){
break;
}
}
echo "
\n";
echo "";
/**
* ページ出力部分ここまで
*/
?>
サンプル
https://redfreshet.com/antenna/rust_old/
関連記事