[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 メーリングリストの案内