使用 file_get_contents 發送多個 Cookies
PHP 手冊提供了一個範例,示範如何使用串流上下文發送 cookie。但是,它沒有解決發送多個 cookie 的場景。
多個Cookie 選項
發送多個cookie 有以下幾個選項:
"Cookie: user=3345&pass=abcd\r\n"
此選項將Cookie 合併為一個字串,由與號(&) 分隔。但是,它可能並不與所有伺服器相容。
"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