PHP cURL-登录并在下次运行时使用cookie



我的代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(!empty($post)){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
else{
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
}
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$headers = array();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$page = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($page, 0, $header_size);
$body = substr($page, $header_size);
curl_close($ch);
return $body;

它工作得很好!我只是想知道这些我多次使用的cookie能持续多久?

我该怎么查?

类似的东西(从https://stackoverflow.com/a/9797313/593807)应该给你饼干的有效期。

preg_match_all('/.*?expires=(?P<expires>[^;]*).*?$/im', $header, $matches);
var_dump($matches);

您应该得到匹配的日期-结果为-1意味着没有regex匹配,可能是因为在标头中没有设置过期。

到期日期是一个可选标题。

最新更新