如何将php curl中的cookie转换为变量因此,其他公司的一些人认为,如果他不使用SOAP、XMLRPC或REST或任何其他合理的通信协议,而是将所有的响应作为cookie嵌入到报头中,那就太棒了。我需要把这些cookie作为希望从这个卷曲响应数组。如果我不得不为此浪费我的一生,写一个解析器,我会非常不高兴。有没有人知道如何简单地做到这一点,最好不要将任何东西写入文件?如果有人能帮我解决这个问题,我将非常感激。
3 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
动漫人物
TA贡献1815条经验 获得超10个赞
CURLOPT_HEADERFUNCTION
$cookies = Array();$ch = curl_init(' // Ask for the callback.curl_setopt($ch, CURLOPT_HEADERFUNCTION, "curlResponseHeaderCallback"); $result = curl_exec($ch);var_dump($cookies);function curlResponseHeaderCallback($ch, $headerLine) { global $cookies; if (preg_match('/^Set-Cookie:\s*([^;]*)/mi', $headerLine, $cookie) == 1) $cookies[] = $cookie; return strlen($headerLine); // Needed by curl}
![?](http://img1.sycdn.imooc.com/545847d40001cbef02200220-100-100.jpg)
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch);curl_close($ch);$headers = http_parse_headers($result); $cookobjs = Array();foreach($headers AS $k => $v){ if (strtolower($k)=="set-cookie"){ foreach($v AS $k2 => $v2){ $cookobjs[] = http_parse_cookie($v2); } }}$cookies = Array();foreach($cookobjs AS $row){ $cookies[] = $row->cookies;}$tmp = Array();// sort k=>v formatforeach($cookies AS $v){ foreach ($v AS $k1 => $v1){ $tmp[$k1]=$v1; }}$cookies = $tmp;print_r($cookies);
- 3 回答
- 0 关注
- 340 浏览
添加回答
举报
0/150
提交
取消