将libcurl中的cookie导入浏览器

时间:2014-07-24 05:30:36

标签: php cookies curl paypal ebay

一般来说,问题如下: 我需要能够将libcurl文件中的cookie导入浏览器并继续浏览curl中的会话。

我的确切问题如下: 我正在尝试创建一个系统来在ebay上购买无法用API购买的产品。它需要登录ebay,然后用paypal支付产品费用。我能够通过curl获得paypal页面,接下来的步骤(付款)应该在浏览器中手动完成。我尝试将curl中的cookie导入浏览器,但paypal页面的行为就像会话cookie一样不存在。

以下是我导入Cookie的代码:

public function setCookies()
{
    curl_close($this->ch);

    $lines = explode("\n", file_get_contents($this->cookie_path));

    foreach ($lines as $line) {

        if (isset($line[0]) && substr_count($line, "\t") == 6) {

            $tokens = explode("\t", $line);
            $tokens = array_map('trim', $tokens);

            $cookie = array();

            $domain = $tokens[0];
            $httpOnly = false;
            if ($domain[0] == '#') {
                $httpOnly = true;
                $domain = str_replace('#HttpOnly_', '', $domain);
            }

            $cookie['domain'] = $domain;
            $cookie['flag'] = $tokens[1];
            $cookie['path'] = $tokens[2];
            $cookie['secure'] = $tokens[3];
            $cookie['expiration'] = $tokens[4];
            $cookie['name'] = $tokens[5];
            $cookie['value'] = $tokens[6];
            $cookie['httpOnly'] = $httpOnly;

            if (!setcookie(
                $cookie['name'],
                $cookie['value'],
                $cookie['expiration'],
                $cookie['path'],
                $cookie['domain'],
                $cookie['secure']=="TRUE",
                $cookie['httpOnly'])) {

                print_r('cookie not set');
                print_r($cookie);
                return;
            }
        }
    }
    unlink($this->cookie_path);
    return;
}

0 个答案:

没有答案