如何将php curl中的cookie转换为变量因此,其他公司的一些人认为,如果他不使用SOAP、XMLRPC或REST或任何其他合理的通信协议,而是将所有的响应作为cookie嵌入到报头中,那就太棒了。我需要把这些cookie作为希望从这个卷曲响应数组。如果我不得不为此浪费我的一生,写一个解析器,我会非常不高兴。有没有人知道如何简单地做到这一点,最好不要将任何东西写入文件?如果有人能帮我解决这个问题,我将非常感激。
3 回答
动漫人物
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}
小怪兽爱吃肉
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 关注
- 422 浏览
添加回答
举报
0/150
提交
取消
