[PHP-users 20211]Re: PHPでのプロキシの設定について
Youichi Iwakiri
yiwakiri @ st.rim.or.jp
2004年 2月 3日 (火) 12:47:03 JST
Keisuke Hamanaka wrote in <000d01c3e9f5$537dab70$3f3214ac @ ad.dcruise.co.jp> :
>現在は、HTTP_Requestをインストールし、プロキシ越えに挑戦しています。
>結果、以下のようなソースを書いて、無事、プロキシを越えて、web
>サイトにアクセスすることができました。
>include_once("/usr/local/lib/php/HTTP/Request.php");
>$a = &new HTTP_Request('http://www.yahoo.com/');
>$a->setProxy('hoge.co.jp');
>$a->sendRequest();
>echo $a->getResponseBody();
>ただ、Webサイトのソースを一行ずつ読み込んでくるロジックが
>わかりません。
HTTPには、ラインアクセスという概念はありません。
1リクエストに対し1レスポンスを返すのが基本です。
>私は従来、ファイル等の読み込みを行う際、以下のようなソースを
>書いてきました。
>
>$fp=fopen ('./log/source.log','r');
>for($num = 0;!feof($fp);$num++){
> $line=fgets($fp);
>
>(以下略)
>今回のWebページも同様に、ソースを一行ずつ読み込んで、
>解析したいのですが、HTTP_Requestにはファイルポインタ(?)
>という概念がないようで、どのようにしたら良いのかわかりません。
藤本さん、渡辺さんの回答もありますが、
PEAR使ってるってことで、別回を、Stream_Varパッケージを使います。
require_once('HTTP/Request.php');
require_once('Stream/Var.php');
stream_wrapper_register('var', 'Stream_Var');
$a = &new HTTP_Request('http://www.yahoo.com/');
$a->setProxy('hoge.co.jp');
$a->sendRequest();
$response = $a->getResponseBody();
$fp = fopen('var://GLOBALS/response', 'r');
for($num = 0;!feof($fp);$num++){
$line=fgets($fp);
(以下略)
}
--
Youichi Iwakiri
PHP-users メーリングリストの案内