如何使用CURL-PHP将cookie传输到Netscape文件?

如何使用CURL-PHP将cookie传输到Netscape文件?,curl,Curl,有一个存储cookie的变量: $cookie = 'session=123;gate=kUwp1keS7kmBjF0rQfEAKbbdR;id=3GYAN'; 我的任务是,我需要使用CURL将这些Cookie写入Netscape HTTP Cookie文件。我是这样做的: curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt')

有一个存储cookie的变量:

$cookie = 'session=123;gate=kUwp1keS7kmBjF0rQfEAKbbdR;id=3GYAN';
我的任务是,我需要使用CURL将这些Cookie写入
Netscape HTTP Cookie文件
。我是这样做的:

curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');

但文件中没有写入任何内容。您拥有写入权限,路径正确。你可能不能这么做。如何录制curl不会将Cookie写入其在响应中未收到的文件,但您可以自己将Cookie写入该文件,以便curl在使用
CURLOPT\u COOKIEFILE
时读取Cookie

curl网站介绍了将Cookie保存为以下内容时使用的方法:

cookie文件格式基于文本,每行存储一个cookie。以#开头的行被视为注释

每一行指定一个cookie,它由七个文本字段组成,用制表符分隔。有效行必须以换行符结尾。 文件中的字段

字段编号、类型和示例数据及其含义:

string example.com - the domain name`
boolean FALSE - include subdomains
string /foobar/ - path
boolean TRUE - send/receive over HTTPS only
number 1462299217 - expires at - seconds since Jan 1st 1970, or 0
string person - name of the cookie
string daniel - value of the cookie
类似于以下的方法应该可以工作:

<?php

$cookieFile        = dirname(__FILE__).'/cookie.txt';
$cookie            = 'session=123;gate=kUwp1keS7kmBjF0rQfEAKbbdR;id=3GYAN';
$domainName        = '.example.com'; // note leading '.'
$includeSubdomains = 'TRUE';
$path              = '/'; // path for cookies
$secure            = 'TRUE';
$expires           = 0;

$cookies = explode(';', $cookie);
foreach($cookies as $c) {
    list($name, $value) = explode('=', $c, 2);

    $line = sprintf(
        "%s\t%s\t%s\t%s\t%d\t%s\t%s\n",
        $domainName,
        $includeSubdomains,
        $path,
        $secure,
        $expires,
        $name,
        $value
    );

    file_put_contents($cookieFile, $line, FILE_APPEND);
}