如何使用CURL-PHP将cookie传输到Netscape文件?
有一个存储cookie的变量:如何使用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 = '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);
}