Do You PHP?    
Search Engine Optimization  php5 powerd  Valid XHTML 1.0!  Valid CSS!  このサイトのはてなブックマーク数 



last updated
2004/08/12

counter hits
since 1999/11/06


PEARのXML_RSSでRSSしてみる

alertここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。

memo[2004/08/12] PHP5.0.0ではphp.iniの設定を行っても「?」に化けてしまいます。とりあえず、RSS.phpの130行目あたりにある「$this->XML_Parser();」を「$this->XML_Parser('utf-8');」とすることで解決します。また、PHP5.0.1-devで修正されているようです。haltさん、情報ありがとうございました。

caution[2004/07/20] PHP4でマルチバイト文字が「?」に化ける場合、php.iniのmbstring.languageがJapaneseになっているか確認してみてください。

SAX関数DOM関数を使ってRSS(RDF Site Summary)のパースをやってみましたが、RSSネタの締めくくり(?)として、PEARのXML_RSSパッケージを使用してみました。

XML_RSSパッケージ自体は、環境によっては別途インストールする必要がありますが、pearコマンドを使用して簡単にインストールすることが出来ます。

●XML_RSSパッケージのインストール
# pear install xml_rss
downloading XML_RSS-0.9.2.tgz ...
...done: 3,515 bytes
install ok: XML_RSS 0.9.2
# 

スクリプト自体はPEARマニュアルにもあるもので充分ですが、RSSにマルチバイト文字を含む場合、内部エンコーディングに変換してやる必要があります。しかし。。。めちゃくちゃ簡単に書けますね(^-^)

●rss.php

<?php
require_once("XML/RSS.php");
?>
<?php
  /**
   * RSSファイルへのURIをコンストラクタの引数に渡す
   */
  $rss =& new XML_RSS("http://www.doyouphp.jp/home.rss");

  /**
   * RSSファイルをパースする
   */
  $rss->parse();

  echo "<h1><a href=\"http://www.doyouphp.jp/\">Do You PHP?</a>のヘッドライン</h1>\n";
  echo "<ul>\n";

  /**
   * getItemsメソッドを使用して全item要素を取得し、表示する
   */
  foreach ($rss->getItems() as $item) {
      echo "<li><a href=\"" . $item['link'] . "\">" .
        mb_convert_encoding($item['title'], mb_internal_encoding(), 'auto') .
        "</a></li>\n";
  }

  echo "</ul>\n";
?>

●Do You PHP?の場合
Do You PHP?のヘッドライン
  ・「CVSからPHPマニュアルを作成する」に追記
  ・PHP4のクラスとJavaのクラス - クラスメソッド・オブジェクトメソッドのいずれでコールされたかを判定する
  ・PHP5ネタ from PHP-users
  ・PHP5関連情報
  ・プロファイルを使った実行時間の制限
  ・CVSからPHPマニュアルを作成する
  ・PHP5関連情報
  ・IIS+PHP+Oracleでメモリ保護違反が発生する
  ・Excelファイル形式でのデータダウンロード(PEAR版)
  ・Excelファイル形式でのデータダウンロード
  ・PHP3.0.18-jp3+Oracle9iのインストール
  ・もう1つのPHPDoc - javadocを使ったphpdoc
  ・PHP5について追記
  ・PHP4でデザインパターン
  ・Oracleプロセスがdefunctする
  


About This Site |  Privacy Policy |  Contact
Copyright © 1999 - 2004 by Hideyuki SHIMOOKA all rights reserved.