年が明けました。
今年もどうぞよろしくお願いします。
報告です。
「RssCollection」がとりあえず動く形になりました。
入力RSS : Atom1.0 RSS2.0 RSS1.0
出力RSS : RSS2.0
使用言語 : PHP
備考
使用したPEAR
使用データベース : SQLite (PDO_SQLite)
エンコード : JCode ライブラリを使用 (mbstring版もあります)
これから、出力RSSにAtom1.0とRSS1.0を追加したいと考えています。
今日は、RssCollectionの進行報告と一緒に、使っているPEARライブラリの解説をしたりしたいと思います。
まずは、報告。
前回言った「XML_Serializer」はbeta版しかないことが発覚につき、別のを考えます。
そして、xmlファイルをダウンロードするところに、「HTTP_Request」を使いたいと思います。
HTTP_Request : http://pear.php.net/manual/ja/package.http.http-request.php
で、PEARライブラリの解説ですが、とりあえずこの「HTTP_Request」の簡単な使い方をやります。
今回使ったのは、他サイトからxmlファイルをとってくるというものです。
$url = 'http://white-output.blogspot.com/rss.xml';
$request =& new HTTP_Request($url);
if(!PEAR::isError($request)){
echo $request->getResponseBody();
}
これが、家のサイトのRSSを取得し、表示するプログラムです。
//接続先のURL
$url = 'http://white-output.blogspot.com/rss';
//オプションのパラメーター 値は初期値
$params = array(
//使用するmethod GETやPOSTのこと (string)
'method'=>'HTTP_REQUEST_METHOD_GET',
//HTTPのバージョン 1.1か1.0 (string)
'http'=>'HTTP_REQUEST_HTTP_VER_1_1',
//Basic認証のユーザー名 (string)
'user'=>null,
//Basic認証のパスワード (string)
'pass'=null,
//プロキシサーバーのホスト (string)
'proxy_host'=>null,
//プロキシサーバーへの接続ポート (integer)
'proxy_port'=>null,
//プロキシ認証のユーザー名 (string)
'proxy_user'=>null,
//プロキシ認証のパスワード (string)
'proxy_pass'=>null,
//タイムアウト時間(秒) (float)
'timeout'=>null,
//リダイレクトの許可 (bool)
'allowRedirects'=>false,
//リダイレクトの最大値 (integer)
'maxRedirects'=>3,
//配列の変数に[]を追加するか (bool)
'useBrackets'=>true,
//レスポンスオブジェクト内にボディを保存するか (bool)
'saveBody'=>true,
//Socketの読み込みタイムアウト時間 (array(seconds, milliseconds))
'readTimeout'=>null,
//Net_Socketのオプション (array)
'socketOptions'=>null
);
$request =& new HTTP_Request($url, $params);
と、いろいろ設定があるみたいです。ドキュメントはあるんだけど仕様がなかった。ソース見たら分かったけど。
$request =& new HTTP_Request($url, $param);
//cockieの名前
$name = 'name';
//cockieの値
$value = 'value';
//cockieの追加
$request->addCockie($name, $value);
//レスポンスオブジェクト内にボディを保存するか
$saveBody = true;
if(!PEAR::isError($request->sendRequest($saveBody))){
//ステータスコードの取得
$request->getResponseCode();
//ステータスの取得
$request->getResponseReason();
//取得するヘッダーの名前 (nullだとヘッダーの連想配列を取得)
$headername = null;
//ヘッダーの取得
$request->getResponseHeader($headername);
//ボディの取得
$request->getResponseBody();
//Cockieの取得 (連想配列)
$request->getResponseCockie();
}
こんな感じで使ってください。
PEARの日本語ドキュメントはかけている部分があるので、ソース見なきゃいけないことがたびたびあるね。
でわでわ、今日はここで。
ども。眠いです。しかし、やらなければ。
プロジェクト「RssCollection」の報告。
とりあえず現状の方針を書きたいと思います。
RSSの取得 : PEAR 「XML_Feed_Parser」を使用する。
RSSの書き出し : PEAR 「XML_Serializer」を使用する。
データベースアクセス : SQLite PDO を使用する。
こんな感じでしょうか。
そして、設定の保存とかの部分は大体書き終わりました。
設定はデータベースに保存しています。
今日はここらで。...やはり眠い。
皆さんにここでお知らせしたいことがあります。
12/15(Mon.)つまり今日ですが、ソフトウェア開発技術者試験の合否が発表される日だったのです。
ということで、ソフ開受かりました。先ほど成績照会してきました。
午前 : 740点
午後Ⅰ : 685点
午後Ⅱ : 685点
ちなみに、最低点が200点、最高点が800点で合格点が600点です。
いやー、よかった。安心しました。
あ、それと、まだ言っていなかったみたいなんで追記しますが、免許はとっくに受かっています。
報告するの忘れてたね。
いやいや、肩の荷が下りた気分です。ゆっくり好きなことができるかな。
右下につけたプロジェクトリスト、今回から「RssCollection」を進めていきたいと思います。
ここでは、進度報告とプログラムの話を少ししようかと。
RssCollectionについて。
これは、複数のサイトのRSSの情報をまとめて、ひとつのRSSにしようという試みです。
使用言語:PHP データベース:SQLite
RSSは規格がいろいろあって面倒なので、その辺はライブラリを使うことにした。
使用ライブラリ
まずは、設定をデータベースに保存したりするとこから作ったよ。
CREATE TABLE rss_settings(
item varchar(20) not null primary key,
value text
);
こんな感じのテーブルを使う。
今日はここまで。
設定のところが打ち終わったらまた報告します。