是否可以使用CURL设置cookie内容?

时间:2012-05-13 08:31:05

标签: php cookies curl

我一直在寻找一种方法,为CURL指定cookie数据。我找到了一些关于如何从访问过的页面保存cookie的解决方案,但这不是我需要的。我想要的是,自己编写cookie的数据,所以CURL使用它。

3 个答案:

答案 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");

PHP docs

中的更多内容

答案 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选项。