file_get_contents を使用した複数の Cookie の送信
PHP マニュアルには、ストリーム コンテキストを使用して Cookie を送信する方法を示す例が記載されています。ただし、複数の Cookie を送信するシナリオには対応していません。
複数の Cookie オプション
複数の Cookie を送信するには、いくつかのオプションがあります:
"Cookie: user=3345&pass=abcd\r\n"
このオプションは Cookie を 1 つに結合しますアンパサンド (&) で区切られた文字列。ただし、すべてのサーバーと互換性があるわけではありません。
"Cookie: user=3345\r\n" .
"Cookie: pass=abcd\r\n"
このオプションは、Cookie を個別の Cookie ヘッダーを持つ個別の行として送信します。互換性は向上しますが、見た目が乱雑になる可能性があります。
最適な解決策
複数の Cookie を送信するための推奨オプションは次のとおりです:
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);
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3