一般来说,问题如下: 我需要能够将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;
}