[CakePHP] RSSを取得する
投稿者: admin, カテゴリ: CakePHP, tags: CakePHP, Components, controller, Element, RSS, UTF-8投稿日: 2010.07.29 - 20:16
更新日: 2011.09.18 - 01:05
PHP で RSS を取得する方法は以前書きました:
pc.casey.jp » PHPでRSSを取得して表示する :
http://pc.casey.jp/archives/125
前回は magpierss を使って実装しましたが、今回は simplepie を使います。simplepie には CakePHP 用のComponent が用意されています。
準備
- まず本体をダウンロードし、
- simplepie.inc を simplepie.php にして
- /app/vendors/simplepie/ に配置する。
- コンポーネントをダウンロードし、
- /app/controllers/components/ に配置する。
- /app/tmp/cache/rss/をキャッシュディレクトリとして作成しておく(たぶん書き込み権限必要)
テストしてみる
var $components = array('Simplepie');
function index(){
$items = $this->Simplepie->feed("<a href="http://pc.casey.jp/feed">http://pc.casey.jp/feed</a>");
debug($items);
}
エラーが出た
Fatal error: Call to undefined function vendor() in /app/controllers/components/simplepie.php on line 31
31行目は何だろう?
vendor('simplepie/simplepie');
CakePHP 1.1 から CakePHP 1.2 へアップグレードする際にここ変更になったんだよね。確か。
ということで、31行目をコメントアウトして、15行目くらいに以下を追加して解決。
App::import('Vendor', 'simplepie/simplepie');
文字が化けた
取得した文字が化けた。だいたいファイルそのものが原因だろうと思って調べると、 simplepie.php が SJIS + CRLF だったので、 UTF-8 + LF にして解決。
備考
※表示件数のカスタマイズ方法が参考文献で解説されています。必要になる機能だと思うので一度訪れておくと良いでしょう。
※執筆時 simplepie は Ver.1.2 だった。CakePHP は 1.2.4 でテストした。
※トップページに表示したり、elementにしてぺたぺた貼りたい場合はいかが参考になるのではないかと思います:
“トップページにランキングを出せますか?” フォーラム – CakePHP Users in Japan :
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=2382&forum=3
参考文献
- CakePHP SimplePie Component :
http://sandbox.pseudocoder.com/demo/simplepie - RSS取得の方法 | CakePHP入門 :
http://www.a24loveweb.net/cake/rss%E5%8F%96%E5%BE%97%E3%81%AE%E6%96%B9%E6%B3%95/
ダウンロード
- SimplePie: Downloads :
http://simplepie.org/downloads/ - http://sandbox.pseudocoder.com/files/CakePHP-SimplePie-Component-v1.0.zip
関連記事
- [CakePHP] RSSを取得する(2)表示
- CakePHPでメール送信 – Qdmail
- [CakePHP] メール送信(Shell版)
- CakePHP 1.3.2 と 1.3.3 の更新ファイル一覧
- CakePHPでメール送信(日本語対応)
- [CakePHP] プレフィックスを取得する
- CakePHP で現在の状態を取得する
スポンサードリンク
エントリ (RSS)