2009-07-18 18 views
3

PHPで作成したPOSTリクエストに対するHTTPヘッダーの入手方法を教えてください。PHPプロセスのHTTPヘッダー

+0

まあ...私は少し*詳細を与える必要がありますと思う。コードすなわち –

+0

私は2番目のページに送信するPOSTリクエストを持っています。リクエストを送信し、2番目のページの応答ヘッダーを何らかの形で変数形式で取得したいと考えています。これは私がCURLを使って行ったことを学んだ方法ですhttp://it.toolbox.com/wiki/index.php/Use_curl_from_PHP_-processing_response_headers私はもっと簡単なメソッドを探していました – Naumaan

+0

そのクラスは既にカールのものをかなり抽象化しているようですうまく。それを使用すると何が問題になりますか? – nategood

答えて

0

どのようにPOSTを発行しましたか?私はソケットを使用し、ヘッダーとボディを取得したときの応答を読み取っています。

+0

私はソケットを使用したいと思いますが、コードをどのように正確に記述するかはわかりません。私のC++の知識から、私がソケットを作成すれば私はこの仕事を簡単に行うことができると知っていますが、PHPでどうやってそれを行うのですか? – Naumaan

+2

私が書いたHTTPクラスからこれを抜き出したので、エラー処理などのすべての細かい点が欠落していますが、基本的な手順を示していると思います。 $ fp = @fsockopen(HttpComm :: $ host、HttpComm :: $ port、$ iErrno、$ sErrStr、(int)self :: $ iTimeoutConnectionSecs); //リクエストを送信 fputs($ fp、$ sHttpString、strlen($ sHttpString)); //これはヘッダーの文字列を取得します $ sResponse = stream_get_line($ fp、1024、 "\ r \ n \ r \ n"); // HTTPレスポンスヘッダーを分割します。 HttpComm :: $ headers = explode( "\ r \ n"、$ sResponse); この点から読んだりすると、それは応答の本体になります。 – grantwparks

+0

フォーマットについてごめんね。私はfaqの下でコードの書式を調べました – grantwparks

1

あなたはそれが、これは動作しますどれだけ、サーバーに依存して... HTTP_で始まるものは、ヘッダでなければなりません...スーパーグローバル$_SERVERでそれらを見つけるでしょう...

greetz

back2dos

+0

-1。彼はスクリプトがHTTPクライアントであるときにヘッダーを取得するように頼んでいます。 – outis

2

HTTP stream contextを作成し、file_get_contents()に渡します。その後、あなたはできる:

$metaData = stream_get_meta_data($context); 
$headers = $metaData['wrapper_data'];