[PHP-users 28301] Re: RSS2.0 形式のファイルを扱いたい
SHIMOOKA Hideyuki
dimension @ pat.hi-ho.ne.jp
2006年 2月 2日 (木) 00:51:15 JST
下岡です。
---- Tadashi Jokagiさん曰く...
> どれも使ったことないですがメモってあるものから.試したらレポート
> が出てくるとうれしいです.
(snip)
>http://www2.autistici.org/bakunin/codes.php
>C のライブラリだけど PHP の拡張モジュールを作成できる.
ナイスネタ!
ということでレポートです:-)
----ここから
■環境
Vine Linux 3.1
PHP4.3.11
■インストール
http://www2.autistici.org/bakunin/libmrss/doc/
にあるとおり、libnxml、libcurlを先にインストールする必要が
ある。libnxmlはソースからconfigure・make・make install、
libcurlはcurl-develのrpmをインストール。ただし、libnxmlは
「--prefix=/usr」を付けた方が問題がないかも知れません。
この後、まずlibmrssをインストール。手順はconfigure・make・
make installで問題なし。
インストール後、phpmrssに移動し、phpmrss_install.shを実行。
PHPのextensions/(no-)?debug-non-zts-20020429ディレクトリに
mrss.soが作成されていることを確認。
必要であれば、php.iniのextensionディレクティブを追加し、
Apache再起動。
■サンプルスクリプト
mRssに付いていたものをちょっと変えてます。mrss_get関数で
parse結果が連想配列で取得できますので、後は煮るなり焼くなり。
ただし、マルチバイト文字を含むRSSの場合、エンコーディング
変換が必要になります。
<pre>
<?php
//dl("mrss.so");
function check ($a) {
if(mrss_error($a)!=MRSS_OK)
{
echo "*** ".mrss_strerror($a)." ***\n";
exit;
}
}
$data=mrss_parse_url("http://mixfeed.jp/1494");
check($data);
$data = mrss_get($data);
echo mb_convert_encoding($data['title'], mb_internal_encoding(), 'auto');
echo mb_convert_encoding($data['description'], mb_internal_encoding(), 'auto');
//var_dump(mrss_get($data));
?>
</pre>
----ここまで
--
SHIMOOKA Hideyuki
PHP-users メーリングリストの案内