2008年01月29日18:15
もうこのブログでもお馴染みになったZAPA先生のマッシュアップ講座。お馴染みじゃない人は、なじんでね♪
PEARの導入でハマり、そして、今回はPEARのライブラリの一つ、Cache_Liteを何とか導入できないものかと悪戦苦闘しておりましたが、導入できずあきらめました(笑)。
あきらめたところ、ようやくマッシュアップ講座第1回が終わりました。とりあえず、わからないところは放っておいて、先に進もう。たぶん、先の方でZAPA先生が優しく教えてくれるはず。
参考:
・次回予告。ZAPA先生に弟子入り。
・PEARが難しすぎるので、教えて偉い人!『解決済み』
第1回の後半は、ブログのRSSフィードを表示するということで、XML_RSSというPEARのライブラリを使って、言わば、サイトに設置できるRSSリーダーを作ります。
RSSをサイト上で利用すると言うのは、マッシュアップでは重要な要素なので、しっかりマスターしたいところです。
まずZAPA先生のマッシュアップ講座で紹介されているPHPのコードの見方というか、ちょっと最初わかりにくいかなと思ったところがありまして、私のような素人の方にはちょっと注意していただきたいです。
IE6でJavascriptオンの状態で見ますと、
本来、 ¥ (円マーク) である部分が、
\ (バックスラッシュ) に見えます。
手打ちで打ち込むとどうすれば良いんだろ?という事になりますが、不思議なもので、コピペすると、ちゃんと¥(円マーク)になります。
それだけ注意してください。
下線が引いてあるPHPのタグはマウスカーソルを置くと説明のポップアップが出ます。
すごく親切設計になっております。
そういうわけで、内容を見ながら、自分でもコードを書いてみました。
書いてみたと言ってもほとんど丸写しなんですが。
自分なりにわかりやすいように書き換えてます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>はてブ3user</title>
<style type="text/css">
<!--
body {font-size: 12px;}
-->
</style>
</head>
<body>
<?php
require_once 'XML/RSS.php' ;
$rss =& new XML_RSS('http://b.hatena.ne.jp/entrylist?mode=rss&sort=hot&threshold=3');
$rss->parse();
echo "<b>はてブ3user</b><br />";
echo "<br />";
foreach ($rss->getItems() as $item) {
echo "<ul><li><a href=¥"" . $item['link'] . "¥"><b>" . $item['title'] . "</b></a><br />";
echo mb_strimwidth(strip_tags($item['description']), 0, 400, "...", "UTF-8");
echo "</li></ul>";
}
?>
</body>
</html>
上のコードをテキストエディタにコピペして、UTF-8で「rssfeed.php」とでも名前をつけて保存して、レンタルサーバーにアップロードします。
require_once 'XML/RSS.php' ;
この部分でXML_RSSというライブラリ(まあ、ぶっちゃけ拡張ソフトみたいなもの)を呼び出しています。
RSSにはバージョンによりフォーマットの違いがありますが、XML_RSSを利用することで、フォーマットの違いを隠蔽して利用することができます。
とのことで、RSSの違いを気にせずに使えるところがナイスです。
PEARでパスを設定している場合は、こういう書き方で構いませんが、PEARを使わない場合、このような書き方をするには、「rssfeed.php」を置いたディレクトリに「XML」というディレクトリを作って、XML_RSSとXML_Parserの中身をアップロードしないといけません。
(参考:PEARが難しすぎるので、教えて偉い人!『解決済み』)
http://pear.php.net/package/XML_RSS
↑まずは、このサイトで、0.9.2 (stable)で構いませんので、ダウンロードして来て下さい。
http://pear.php.net/package/XML_Parser/
↑次にこのサイトで、XML_Parser1.2.8 (stable) で構いませんので、ダウンロードしてきてください。
ダウンロードしたら、解凍して、RSS.phpとParser.phpを取り出し、下記のような構造でアップロードします。

$rss =& new XML_RSS('はてブ3userのRSSのアドレス');
この部分で表示するRSSのアドレスを設定します。
「RSSフィードからオブジェクトを生成」しているらしいですが、今のところよくわからないので、丸暗記と。
$rss->parse();
「parse()メソッドによりRSSをパース」しているらしいですが、今のところよくわからないので、これも、丸暗記と。
foreach ($rss->getItems() as $item)
「getItems() メソッドを使って、解析した各項目要素を$itemとして取得」しているらしいですが、今のところよくわからないので、これも、丸暗記と。
mb_strimwidth
指定した幅で文字列を丸める
strip_tags
文字列からHTMLおよびPHPタグを取り除く
そういうわけで、出来上がったのは、こちら。
はてブ3user
結局、全ては理解することはできませんが、まずは習うより慣れろでとりあえず先に進んでみたいと思います。
やってるうちにわかってくる事もあると思いますので。

アフィリエイトは儲かんないってば
