- - PR -
PHPでGET送信する方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-24 19:01
PHPを利用してGET送信することは可能でしょうか?
たとえば、www.xxx.jpのa.aspxページに対して PHPでhttp://www.xxx.jp/a.aspx?e=OKのようなGETの 送信をおこない、「http 200 OK」の戻り値を取得したいと 考えております。どのようにしたら実現することが可能でしょうか? PHPは関数が豊富に用意されていると聞いていますが関数などは ありますでしょうか? よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2005-08-25 10:33
・送信側 「PHPにて生成されたHTMLページからGET送信したい」んであれば、 それこそPHP云々以前のHTMLのFORMの話です。 ・受信側 GET変数で受け取れます。 今回の例なら$_GET['e']。 「PHP GET 値 取得」あたりをキーワードに、PHPのマニュアルなりGoogleなりで 検索すれば、答えにたどり着くのがそんなに難しいとは思えません。 要するに、自力で調べましたか?って言いたい。 | ||||||||||||
|
投稿日時: 2005-08-25 10:44
お世話になります。 PHPでHTTPヘッダを取得したい。 と言う事ですよね? ↓このあたりが参考になるんではないでしょうか。 http://php.s3.to/man/wrappers.http.html [追記] GET送信についてはMattunさんに同意です。 [ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-08-25 10:48 ] | ||||||||||||
|
投稿日時: 2005-08-25 11:17
どもです。がると申します。
[/quote] んっと。コデトンさんがなさりたいのは、そうではないように読める のですがいかがでしょうか? コデトンさんが書かれているのは 「PHPのプログラム中で 別CGI(aspx)を叩いてその結果を受け取りたい」 という風に読めるのですが。 つまり、コードっぽく書くと
こんな感じではないでしょうか? で、…自分はよく知らないです(苦笑 C++とかだと、ストレートにsocketで扱っちゃうのですが。 で、PerlだとCPANでいくつかモジュールがあるのですが。 PHPだと…どうなんでしょ? PHPに詳しい方、フォローよろしくです。 | ||||||||||||
|
投稿日時: 2005-08-25 11:19
Mattun様 なおこ様 がるがる様
お返事ありがとうございます。 説明不足でした。 分かりにくい説明になりますが、 あるサイトのa.cgiからhttpsにより今回GET送信を行わせたいb.phpが が呼ばれます。b.phpはa.cgiからある値を取得し、その値をGET送信(http) で別のサーバにあるxxx.aspxに対して送信し、xxx.aspxから「http 200 OK」 を取得します。(b.phpはxxx.aspxから応答を取得するまで待ち状態になります。) b.phpはxxx.aspxからの応答を取得後a.cgiにたいしてhttpsで応答を返すこと を行わせたいと考えております。 普通であればこんな面倒な事をする必要はないのですが今回の案件上 どうしても必要となります。PHP言語を利用した開発を行った事が無いため このようの事ができるのかも知りたいと思います。 よろしくお願いいたします [ メッセージ編集済み 編集者: コデトン 編集日時 2005-08-25 11:20 ] | ||||||||||||
|
投稿日時: 2005-08-25 12:01
こんにちわ。
PHPにもソケット関数というやつがあるようです。 「PHP ソケット関数」で検索したら出てきました。 リクエストを送ってからレスポンスを受け取るまでの例が載ってたので、 ほとんどそのままで使えそうです。 | ||||||||||||
|
投稿日時: 2005-08-25 14:07
こんにちは
この辺にいろいろ載っているのでお求めのものを探してみてください。 http://www.php.net/manual/ja/index.php レスポンスのヘッダだけの取得であるならば以下の関数が使えると思われます。 http://www.php.net/manual/ja/function.get-headers.php | ||||||||||||
|
投稿日時: 2005-08-25 16:56
fsockopenを使いGETでデータ送信し、レスポンスを受信してみました。
参考になりますでしょうか。 <?php $server="www.hogehoge.com"; $port="80"; $timeout="5"; $header="GET http://".$server."/?a=10 HTTP/1.0\r\n"; $header.="\r\n\r\n"; $fp=fsockopen($server,$port,$errno,$errstr,$timeout); if($fp) { fwrite($fp, $header); $reply=''; while(!@feof($fp)) { $line=fgets($fp, 4096); $reply.=$line; } } fclose($fp); var_dump($reply); ?> |