Bir değişkene bir php curl gelen çerezleri nasıl

4 Cevap php

Bu yüzden bazı diğer şirkette bir adam yerine sabun ya da XML-RPC ya dinlenme veya başka makul bir iletişim protokolünü kullanarak o sadece başlığında kurabiye gibi onun yanıtının tüm gömülü eğer harika olacağını düşündüm.

Ben bu kıvırmak yanıtı umarım bir dizi olarak bu çerezleri dışarı çekmek gerekir. Bunun için bir ayrıştırıcı yazı hayatımın bir sürü atık varsa ben çok mutsuz olacaktır.

Herkes bu sadece tercihen bir dosyaya hiçbir şey yazmadan, yapılabilir biliyor mu?

Herkes bu konuda bana yardımcı olabilir, ben çok minnettar olacaktır.

4 Cevap

Eğer CURLOPT_COOKIE_FILE ve CURLOPT_COOKIE_JAR kıvırın kullanırsanız gelen / bir dosyaya çerezleri yazma / okuma olacaktır. Sen, kıvırmak onunla bittikten sonra, okuma ve / veya istediğiniz ancak bunu değiştirebilirsiniz.

Bu regexplerde olmadan yapar, ama PECL HTTP uzantısı gerektirir, birisi yardımcı olabilir. Şerefe

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 format
foreach($cookies AS $v){
    foreach ($v  AS $k1 => $v1){
        $tmp[$k1]=$v1;
    }
}




$cookies = $tmp;
print_r($cookies);

libcurl Ayrıca bilinen tüm çerezleri ayıklar CURLOPT_COOKIELIST sağlar. Tüm ihtiyacınız bağlama PHP / CURL kullanabilirsiniz emin olmaktır.

Benim anlayış çerezleri curl bir dosyaya yazılır gerektiğidir (curl -c cookie_file). Eğer curl PHP'nin exec veya system fonksiyonları (veya aileden herhangi bir şey) ile çalışan ediyorsanız, bir dosyaya çerezleri kaydetmek gerekir sonra dosyayı açıp onları içeri okumak