我正在使用这个....
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);
}
我正在这样打电话......
$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);
我希望它接收一个 cookie 并将其写入文件 /tmp/TestCookies
。
该站点肯定会返回 Set-Cookie
header - 如果我转储 $a
我可以看到它们,但是,该文件永远不会创建。
如果是权限问题,我使用 touch
创建了它并使用了 chmod 777
- 该文件现在存在但它是空的。
我做错了什么?
最佳答案
CURL_COOKIEFILE
作为 cookies.txt 源,读取自- 和
CURL_COOKIEJAR
作为数据存储,写回
您必须为 _COOKIEFILE
提供一个空字符串以启用它 IIRC,但如果您希望存储它们,则必须提供 _COOKIEJAR
。通常将两个选项设置为相同的名称。
关于PHP CURL 似乎忽略了 cookie jar/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872071/