php curl不会写cookie文件

时间:2015-06-24 10:43:13

标签: php curl cookies web-scraping

我知道有很多这样的问题,但任何人都可以帮助我缩小问题的范围吗?

这是我的代码:

ini_set("display_errors", 1);
error_reporting(E_ALL);
$cookies = 'cookies.txt';
$postdatal = array(
    '__VIEWSTATE' => '', // need a __VIEWSTATE, even if it's empty
    'username' => 'username',
    'password' => 'password',
    'button1' => 'Sign+in', // need button1
    '__VIEWSTATEGENERATOR' => '' // same reason as __VIEWSTATE
);

$ch = curl_init();

curl_setopt_array( 
$ch, array(
    CURLOPT_URL => 'url',
    CURLOPT_RETURNTRANSFER => true, // return the results
    CURLOPT_POST => true, 
    CURLOPT_POSTFIELDS => $postdatal, // send the data
    CURLOPT_HEADER => true,
    CURLOPT_COOKIEJAR => $cookies, // set the cookies
    CURLOPT_COOKIEFILE => $cookies 
));

$output = curl_exec($ch);

echo $output;

返回的标头有三个Set-Cookie标头。有什么办法可以调试吗?我似乎没有得到任何错误,即使我选择了无效的文件名(cookies.txt是chmod 777空文本文件)。

1 个答案:

答案 0 :(得分:1)

我解决了我的问题:我需要添加curl_close()才能保存Cookie文件。