PHP&;cURL:是否可以在不解析标题的情况下将cookie放入变量而不是文件中?
我有一个php代理服务器,在开始(登录)时会将电子邮件和密码发布到该服务器。然后我使用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
$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);