进行file_get_contents请求时是否可以接收由远程服务器设置的cookie ?
file_get_contents
我需要php来执行http请求,存储cookie,然后使用存储的cookie进行第二个http请求。
您应该cURL为此目的使用cURL实现名为cookie jar的功能,该功能允许将cookie保存在文件中,并将其重新用于后续请求。
cURL
这里有一个简短的代码片段,介绍了如何实现:
/* 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。