【发布时间】:2012-05-03 09:28:38
【问题描述】:
我想给一个带有 curl 的 url..并根据它的 header 属性 Expires 获取它。
我只想检索过去 30 天内缓存过的页面。
我认为不对的两件事......
1) gmmktime(0, 0, 0, 1, 1, 1998).. 我不知道如何将其设置为今天 - 30 天前。 2)它是否会根据其标题返回我谷歌?如果 url 没有日期超过 30 天的缓存标头,$page 变量将是什么
function exractURl()
{
//How to convert gmmktime to the last 30 days from today
$ts = gmdate("D, d M Y H:i:s", gmmktime(0, 0, 0, 1, 1, 1998)) . " GMT";
$c= curl_init('http://www.google.co.il/');
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Expires:'.$ts));
// What output will page give me..if the headers arent found
$page= curl_exec($c);
curl_close($c);
}
更新:
function exractURl()
{
$ts = gmdate("D, d M Y H:i:s", strtotime("30 days ago")) . " GMT";
$c= curl_init('http://www.google.co.il/');
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HTTPHEADER, array('If-Modified-Since:'.$ts));
$page= curl_exec($c);
curl_close($c);
return $page;
}
【问题讨论】:
-
我认为 expires-header 是响应,而不是请求。您可以发送一个“If-Modified-Since”标头。