ZAPA先生、ようやく第1回が終わりました・・・
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.phpParser.phpを取り出し、下記のような構造でアップロードします。

XML_RSSの配置


$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



結局、全ては理解することはできませんが、まずは習うより慣れろでとりあえず先に進んでみたいと思います。


やってるうちにわかってくる事もあると思いますので。


clip!PHP