PHP stream_context_creat
今日は、
境内のメソッドについて質問があります。
以下のスクリプトについてですが、
<?php
//POSTする送信データ
$postData = array (
"key_01" => "POST送信データ01&",
"key_02" => "POST送信データ02&",
);
//送信するデータをURLエンコードする
$postData = http_build_query($postData);
$header = array(
"http" => array( //(1)
"method" => "POST", //(2)
"header" => "Content-type: application/x-www-form-urlencoded\r\nuser_name: testuser_name", //(3)
"content" => $postData //(4)
)
);
//上記headerという変数からHTTPリクエストのストリームを作成する
$request = stream_context_create($header);
$res = file_get_contents("http://localhost/stream02.php",false,$request);
print $res;
上記のようなスクリプにおける、ストリームというのはいわゆるクライアント側から
サーバー側へ送信するHTTPリクエストと同義のものでしょうか?
であればHTTPレスポンスのようにそのヘッダーの中身を取得する
getallheaders()というような感じで、実際に、送信されるHTTPリクエストの
中身を視認したいのですが可能でしょうか?
以下サイトの
http://www.tohoho-web.com/ex/http.htm
HTTPサンプルのように取得したいのですが・・・。
また、冒頭に記述したスクリプトですが
php.iniのallow_url_fopenの箇所がonになっていないと実行できないことは
確認したのですが、もし仮にallow_url_fopenがOffになっていた場合、
上記のようにストリームと呼ばれるものを使ってHTMLフォーム以外でPOSTリクエスト
したい場合は何か方法があるのでしょうか?
通常であればPEARのHTTP_Requestとかで処理するかと存じますが、
PHPの組み込み関数のみでやる場合、他に方法ってありますか?
識者の方ご教授ください。
お礼
#4でも出来ていましたが、「http://」から最初の/まで置換しているので 変えたくない所まで変わっているのが見つかりました。 この記述で試した所、最初に「sample1」があるところだけ変わってくれるので これで望む事が出来ました。 ありがとうございました。