Php:在curl请求中发送cookie

时间:2012-10-23 19:16:20

标签: php cookies curl

我有以下卷曲代码GET。

<?php  
function get_content($URL){
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
          curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
          curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
          curl_setopt($ch, CURLOPT_URL, $URL);
          $data = curl_exec($ch);
          curl_close($ch);
          return $data;
      }
 echo get_content("http://www.domain.com/cool.php");
?>

我使用了http标头和cookie,如下所示

xidseq:22
xid:b05f251c-8a72-4c2b-a230-e03b9c5c87b7&&BAYIDSAMFE1C013&343
data:dsfsfssdss

我需要向http://www.domain.com/cool.php发送一些GET请求。

我如何将cookie放入cookie.txt?是否有任何特定的Cookie格式..或只是发布它有效吗?

1 个答案:

答案 0 :(得分:1)

如果上面的脚本不起作用,请尝试:

curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt'); /* make sure you provide FULL PATH to cookie files*/

检查dirname(__FILE__) . '/cookie.txt'上的文件权限和所有权。确保文件可写。

要将cookie放入cookie.txt中,您需要访问包含它们的某个网页 - 只能使用cURL获取的服务器端cookie ,javascript cookie无法通过cURL访问,至少不能直接

如果您想为GET请求手动创建Cookie,请阅读Netscape Cookie格式或 - 最好的方法是,通过CURLOPT_COOKIEJAR保存一些“真实网站”Cookie,以查看和理解格式。