我一直在寻找一种方法,为CURL指定cookie数据。我找到了一些关于如何从访问过的页面保存cookie的解决方案,但这不是我需要的。我想要的是,自己编写cookie的数据,所以CURL使用它。
答案 0 :(得分:22)
您可以将curl_etopt与CURLOPT_COOKIE常量一起使用:
<?php
// create a new cURL resource
$ch = curl_init();
// cookies to be sent
curl_setopt($ch, CURLOPT_COOKIE, "fruit=apple; colour=red");
中的更多内容
答案 1 :(得分:20)
你真的应该read the documentation - 它列出了你期望的关键字,并包含很多有用的信息:
-b,--cookie
(HTTP)将数据作为cookie传递给HTTP服务器。据说是 先前从“Set-Cookie:”行中的服务器接收的数据。 数据格式应为“NAME1 = VALUE1; NAME2 = VALUE2”。
如果行中没有使用'='符号,则将其视为文件名 用于读取以前存储的cookie行,应该使用它们 在这个会话中,如果他们匹配。使用此方法也可以激活 “cookie解析器”,它将使curl记录传入的cookie, 如果你将它与-L结合使用可能会很方便, - 位置选项。从中读取cookie的文件的文件格式应该是纯HTTP标头或Netscape / Mozilla cookie文件 格式。
请注意,使用-b,--cookie指定的文件仅用作输入。 文件中不会存储任何cookie。要存储cookie,请使用-c, --cookie-jar选项,或者您甚至可以使用-D, - dump-header将HTTP标头保存到文件中!
如果多次设置此选项,则最后一个选项将是一个 那是用的。
答案 2 :(得分:2)
cURL可以使用Netscape format中的Cookie文件。只需自己创建这样的文件并将其用作CURLOPT_COOKIEFILE
选项。