转移饼干&从CURL到标题位置的会话

时间:2015-11-01 15:22:03

标签: php curl cookies

我有一个将数据发送到外部源的curl请求。邮寄完成后,我提取目标网址并通过标题重定向("位置:$ url");。

问题:虽然它确实重定向,但数据不再存在。 cookie或会话没有通过标题位置传递。

将标题详细信息传输到标题位置的最佳方法是什么?

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'postdata=' . urlencode(xmlData()));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 10);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

// Download the given URL, and return output
$output = curl_exec($ch);

// Cookie Match
preg_match_all('/^Set-Cookie:\s*([^\r\n]*)/mi', $output, $ms);
// print_r($result);
$cookies = array();
foreach ($ms[1] as $m) {
    list($name, $value) = explode('=', $m, 2);
    $cookies[$name] = $value;
}
print_r($cookies);

$redirect = curl_getinfo($ch)['redirect_url'];

header('HTTP/1.1 307 Temporary Redirect');
header("Location: $redirect");

//Close Match
curl_close($ch);

我尝试了所有的cookie preg匹配,但它带回了一个空数组。

0 个答案:

没有答案