PHP CURL似乎忽略了cookie jar /文件

Bas*_*sic 6 php cookies curl

我正在使用这个....

    function cURL($url, $header=NULL, $p=NULL)
    {

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_NOBODY, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
        curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/TestCookies");


        if ($p) {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
        }
        $result = curl_exec($ch);

        if ($result) {
            return $result;
        } else {
            return curl_error($ch);
        }
        curl_close($ch);
    }
Run Code Online (Sandbox Code Playgroud)

而我正打这样的电话......

        $Headers = array(
                "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*\/*;q=0.5",
                "Accept-Language: en-gb,en;q=0.5",
                "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7");


        $a = $this->cURL("https://www.mysite.com/",$Headers, null);
Run Code Online (Sandbox Code Playgroud)

我希望这会收到一个cookie并将其写入文件/tmp/TestCookies.

该网站肯定会返回Set-Cookie标题 - 如果我转储我可以看到它们$a,但是,从未创建相关文件.

万一这是一个权限问题,我创建了它touch并且chmod 777'它 - 文件现在存在但它是空的.

我究竟做错了什么?

mar*_*rio 11

卷曲常数被分成

  • CURL_COOKIEFILE作为其在cookie.txt的源读取
  • CURL_COOKIEJAR作为回的数据存储区

您必须提供_COOKIEFILE一个空字符串以启用它IIRC,但_COOKIEJAR如果您希望它们存储.通常将两个选项都设置为相同的名称.

  • 从那以后它被变成了'CURLOPT_COOKIEFILE`和`CURLOPT_COOKIEJAR`. (3认同)