PHPでfile_get_contentsを使用してデータを投稿するにはどうすればいいですか? 質問する

PHPでfile_get_contentsを使用してデータを投稿するにはどうすればいいですか? 質問する

PHP の関数を使用してfile_get_contents()URL の内容を取得し、変数を通じてヘッダーを処理します$http_response_header

ここで問題となるのは、一部の URL では URL に投稿するデータが必要になることです (ログイン ページなど)。

それ、どうやったら出来るの?

stream_context を使用すればそれが可能かもしれないことは分かっていますが、完全には理解していません。

ありがとう。

ベストアンサー1

HTTP POSTリクエストを送信するfile_get_contents実際にはそれほど難しくはありません。ご想像のとおり、パラメータを使用する必要があります$context


PHPマニュアルのこのページに例が示されています: [HTTPコンテキストオプション][2] *(引用)* :
$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-Type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

基本的には、適切なオプション(そのページに完全なリストがあります)を使用してストリームを作成し、それを 3 番目のパラメータとして使用する必要がありますfile_get_contents。それ以上は必要ありません ;-)


補足として、一般的に、HTTP POST リクエストを送信するには、多くのオプションを提供する curl を使用する傾向がありますが、ストリームは、誰も知らない PHP の優れた機能の 1 つです... 残念です...

おすすめ記事