パズドラのアンテナサイト作りました

勉強がてらにまとめサイトでも作ってみようと思い

今人気のパズドラのまとめアンテナサイトを作成しました。

パズル&ドラゴンズ -まとめアンテナ-
http://pad-db.com/

意外と考えることもなく簡単に作れたのでサイトの作成経緯でも。

まずこのサイトを作ろうと思った経緯はただの勉強です。

PHPとMySQLを使って何か作ろうかなーと考えていたところ

アンテナサイトとか良いんじゃないかと思い作成しました。

本当はMySQLを使わず本当に簡単なサイトにしようと思ったのですが、後から記事検索もしたいと考えMySQLも使用することにしました。

作成段階で特に困ったのはデザイン、しかし自分のサイトだから良いかと思いいつものシンプルサイトにしましたw

PHPのプログラムの方で困ったのがRSSの取得。

xmlをパースするのにけっこう困りました。

タイトルはタイトルで別に、記事データは別に取得し表示の際のSQLをシンプルにするためにitemデータとchannelデータを別に取得しました。

たぶんここらへんはもっと簡単に取得する方法があると思います。自分の考えるプログラムではitemとchannelを別に取得しました。

そして日付、日付のテキストデータをデータベースに挿入する際にdatetimeに変えて挿入する。
これはstrtotime関数を使えば簡単でした。

ソースはこちら。RSS1.0用のdc:dateの処理にhttp://purl.org/dc/elements/1.1/を引数として指定しています。
事前に取得したいブログの一覧をデータベースに仕込み、rssのurlをrss_urlに突っ込んでます。

		$xml		=		simplexml_load_file($row["rss_url"]);
		foreach ($xml->channel as $rssrow) {
			$blog_title		=		$rssrow->title;
		foreach ($xml->item as $rssrow) {
			$date		=		$rssrow->children("http://purl.org/dc/elements/1.1/")->date;
			$rss_date	=		date('Y.m.d H:i',strtotime($date));
			$rss_title	=		$rssrow->title;
			$rss_title	=		mysql_real_escape_string($rss_title);
			$rss_url	=		$rssrow->link;

取得した物のをそのままデータベースへ流し込み、この取得プログラムをCRONで50分ごとに走らせています。

TOPページでは、毎回SQLを吐いて記事一覧を取得するのには負荷がかかるので上記のプログラムに加え

取得した際に別のhtmlファイルへ30件近く書き出しています。その書き出したhtmlファイルをTOPページでrequireし表示しています。

表示の際には、str_replaceやtrim,mb_strimwidthを使ってデザインが崩れないように制限をかけ無駄な空白を削除したりしました。

と取得と表示の部分を書いてみましたがけっこう簡単なんですよねこれ。

面倒だろうなーと思って作り始めたのですが作り終わってみると意外と簡単でした。

趣味レベルのPHPプログラムでしたが、

こんなプログラムを作ってみると面白いよ!などありましたら教えて下さい。

作成したアンテナサイトはメンテも必要なく自動で動いてるのでしばらく放置して何もなければ消そうと思います。

パズル&ドラゴンズ -まとめアンテナ-
http://pad-db.com/

PHP

Posted by zipt


PAGE TOP