Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;cURL:是否可以在不解析标题的情况下将cookie放入变量而不是文件中?_Php_Curl - Fatal编程技术网

PHP&;cURL:是否可以在不解析标题的情况下将cookie放入变量而不是文件中?

PHP&;cURL:是否可以在不解析标题的情况下将cookie放入变量而不是文件中?,php,curl,Php,Curl,我有一个php代理服务器,在开始(登录)时会将电子邮件和密码发布到该服务器。然后我使用 $ch = curl_init($url); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $myvars); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar); cur

我有一个php代理服务器,在开始(登录)时会将电子邮件和密码发布到该服务器。然后我使用

$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);
curl_setopt( $ch, CURLOPT_HEADER, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
转发到需要某些参数的API。如您所见,我将cookie保存在cookie jar文件中

然后,我可以使用这个cookie文件调用任何其他对proxy->API的请求,并成功获得响应。一切正常。我用

curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);
在用户成功登录后发出其他请求

问题是当时只有一个用户可以登录(并调用其他请求),因为只有一个cookie jar文件。我可能会在代理上生成唯一的cookie文件,并通过每个用户的每个新请求以某种方式访问它们。但这是服务器上的一个负担,绝对不是一个好主意

所以我想做的是将收到的cookie保存到变量中,而不是文件中,然后将其发送给用户


不幸的是,我没有工作;我可能可以编写自己的正则表达式,但我想知道是否有可能使用curl直接将cookie保存到变量中,或者我必须手动解析头?(我希望能够在CURLOPT_COOKIEFILE中输入变量cookie,而不是文件中的cookie)

让我们用一个curl句柄(
$ch
)尝试一下:

我的第一个要求是:

$url= "http://www.google.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, '-'); // <-- see here
$result = curl_exec($ch);

// remember i didn't close the curl yet!    
在本例中,我使用了cookiejar的
-
。这意味着它不会使用任何文件。因此,在第二个curl请求期间,它将使用上一个调用的cookiejar


一个问题:它会将cookie jar值打印到std输出中。

可能是这样吗?这就是我正在做的。很遗憾,谢谢你的回答。不创建文件是一件好事,但不幸的是,它并不能解决将cookie存储到变量中的问题,这样我就可以发送它并在客户端设置它
$url= "http://www.google.com";
curl_setopt($ch, CURLOPT_URL,$url);
$result = curl_exec($ch);
// if you are done, you can close it.
curl_close($ch);