「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で file_get_contents を使用して複数の Cookie を送信するにはどうすればよいですか?

PHP で file_get_contents を使用して複数の Cookie を送信するにはどうすればよいですか?

2024 年 10 月 31 日公開
ブラウズ:841

How to Send Multiple Cookies with file_get_contents in PHP?

file_get_contents を使用した複数の Cookie の送信

PHP マニュアルには、ストリーム コンテキストを使用して Cookie を送信する方法を示す例が記載されています。ただし、複数の Cookie を送信するシナリオには対応していません。

複数の Cookie オプション

複数の Cookie を送信するには、いくつかのオプションがあります:

  • オプション 1:
"Cookie: user=3345&pass=abcd\r\n"

このオプションは Cookie を 1 つに結合しますアンパサンド (&) で区切られた文字列。ただし、すべてのサーバーと互換性があるわけではありません。

  • オプション 2:
"Cookie: user=3345\r\n" . 
"Cookie: pass=abcd\r\n"

このオプションは、Cookie を個別の Cookie ヘッダーを持つ個別の行として送信します。互換性は向上しますが、見た目が乱雑になる可能性があります。

最適な解決策

複数の Cookie を送信するための推奨オプションは次のとおりです:

  • オプション 3:
Cookie: user=3345; pass=abcd

この構文では、セミコロン (;) を使用して Cookie ペアを区切ります。これは広くサポートされており、HTTP Cookie 仕様に従っています。

実装

file_get_contents を使用して複数の Cookie を送信するには:

$cookies = array('user' => '3345', 'pass' => 'abcd');
$cookieString = '';
foreach ($cookies as $name => $value) {
    $cookieString .= "$name=$value;";
}

$opts = array(
  'http' => array(
    'method' => 'GET',
    'header' => "Accept-language: en\r\n" .
              "Cookie: $cookieString\r\n"
  )
);

$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com/', false, $context);
リリースステートメント この記事は次の場所に転載されています: 1729212137 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3