問題描述
在執行 file_get_contents
請求時,是否可以接收遠程服務器設置的 cookie?
Is it possible to receive the cookies set by the remote server when doing a file_get_contents
request?
我需要 php 來執行 http 請求,存儲 cookie,然后使用存儲的 cookie 發出第二個 http 請求.
I need php to do a http request, store the cookies, and then make a second http request using the stored cookies.
推薦答案
你應該使用 cURL
為此,cURL
實現了一個叫做 cookie jar 的特性,它允許將 cookie 保存在一個文件中,并在后續請求中重用它們.
you should use cURL
for that purpose, cURL
implement a feature called the cookie jar which permit to save cookies in a file and reuse them for subsequent request(s).
這里有一個快速的代碼片段如何做:
Here come a quick code snipet how to do it:
/* STEP 1. let’s create a cookie file */
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
/* STEP 2. visit the homepage to set the cookie properly */
$ch = curl_init ("http://somedomain.com/");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
/* STEP 3. visit cookiepage.php */
$ch = curl_init ("http://somedomain.com/cookiepage.php");
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
注意:必須注意,您應該安裝 pecl 擴展(或在 PHP 中編譯),否則您將無法訪問 cURL API.
note: has to be noted you should have the pecl extension (or compiled in PHP) installed or you won't have access to the cURL API.
這篇關于file_get_contents 接收 cookie的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!