file_get_contentsでPOSTデータ送信
本日からPHPのメモを記述して行こうと思います。
さて早速今日のネタ。
ぎじゅっやさんにてfile_get_contentsでWebページへアクセスする際に、UserAgentを変更する方法が紹介されています。
では、これを応用してfile_get_contentsを使ってPOST形式でデータを送信してみましょう。
参考コード
<?php //POSTデータ $data = array( "param1" => "data1", "param2" => "data2" ); $data = http_build_query($data, "", "&"); //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $context = array( "http" => array( "method" => "POST", "header" => implode("\r\n", $header), "content" => $data ) ); $url = "http://localhost/test.php"; echo file_get_contents($url, false, stream_context_create($context)); ?>
こんな感じです。
受け取り側のプログラムはprint_r($_POST);とかしてあげれば結果が見られると思います。
重要なのはstream_context_createですね。
headerには適切なヘッダを設定し、contentにPOSTデータを入れてあげればよいです。