如果表单页有 cookie,那么
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
就取回到文件了

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
就发送回去了当然你也可以分析出 header 中 cookie,用这样的形式发送
curl_setopt($ch, CURLOPT_COOKIE, 'a=1&b=2');

解决方案 »

  1.   

    首先你要有當前頁面的cookie文件。如果沒有可以先請求一次來獲取$cookie_file = 'cookie.txt';  
      
    $ch = curl_init($url);  
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');  
    curl_setopt($ch, CURLOPT_HEADER, 0);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);  // 獲取cookie
    curl_exec($ch);  
    curl_close($ch);  
      
    //带上cookie文件,访问需要访问的页面  
    $send_url='xxx.com';  
    $ch = curl_init($send_url);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  
    $contents = curl_exec($ch);  
    curl_close($ch);  
      

  2.   


    curl_setopt($ch, CURLOPT_COOKIE, ‘key1=value1; key2=value2’);
      

  3.   

    两位说的都对,但是,我每次访问目标网站生成的cookie都是每次变动的,但本地存储的cookie不变。而只有本地存储的cookie才有效。如何用php抓取访问一个网站时发送的header ??
      

  4.   

    cookie 就是会变动的
    所以你需要将两句连用
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  //发送已有的 cookie
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //保存当前的 cookiecurl_setopt($ch, CURLOPT_HEADER, 1);  
    http 头就会出现在接收的数据中
    也可以通过分析 curl_getinfo 返回的结果
      

  5.   

    先找到对方生成cookie的页面
    curl_setopt($ch, CURLOPT_HEADER, 1);
    然后正则匹配set cookie行,就能保存它给你的cookie了
    如果你是想把浏览器的cookie带过去,直接用F12开发者工具,找到该站cookie复制到#3的代码
      

  6.   


    但是我用chrome查看本地存储的cookie.一直不变。但网页用您的方法每次都在刷新,都是不同的。但对方的网站只有在输入 本地固定的哪个cookie后才能正常使用。。
      

  7.   

    那可能是你的代码写的不对!
    $cookie_file 必须是绝对路径的文件