[Zend Framework] Zend FrameworkでRSSフィードをproxy経由で取得
2月 13th, 2008 Posted in Zend Framework
手順としては、
- Zend_Http_Clientを用いてproxy経由でRSSフィードを取得
- レスポンスデータからRSSを取り出し、Zend_Feed::importString()で読み込む
あとはZend_Feedを用いていろいろできます。
proxy経由でリクエストをかけるには、Zend_Http_ClientのアダプタをZend_Http_Client_Adapter_Proxyに設定して、サーバー名、ポートなどを指定すればOKです。
上記の通り取得したRSSはレスポンスデータのBody部にあるので、getBody()で取得します。
コードは以下の通りです。$confの設定はお使いの環境に合わせてください。
require_once 'Zend/Http/Client.php'; require_once 'Zend/Feed.php'; // Zend_Http_Clientの設定 $conf = array( 'adapter' => 'Zend_Http_Client_Adapter_Proxy', 'proxy_host' => 'server-name', //proxyサーバー名、またはipアドレス 'proxy_port' => 80, // ポート番号 ); try { // リクエスト $client = new Zend_Http_Client('http://wadslab.net/feed/', $conf); $response = $client->request(); // Zend_Feedにインポート $rss = Zend_Feed::importString($response->getBody()); } catch (Zend_Exception $e) { // 例外処理 } …
Zend_Http_Client、proxy_hostの設定で、ipアドレスを指定する場合も’(シングルクォート)で囲みましょう。