如何在不下载Php中的整个网页的情况下检查页面是否已更新?我是否需要查看标题?
答案 0 :(得分:4)
一种可能性是检查LastModified标头。您可以通过发出HEAD请求来下载标题。服务器仅使用HTTP标头进行响应,您可以检查上次修改的标头和/或内容长度标头以检测更改。
Last-modified "Mon, 03 Jan 2011 13:02:54 GMT"
需要注意的一点是,HTTP服务器不需要发送此标头,因此在所有情况下都不起作用。 PHP函数get_headers
将为您提取这些函数。
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = get_headers('http://example.com');
答案 1 :(得分:2)
您可以在请求中添加If-Modified-Since: <datetime>
标头,如果此后服务器没有更改,则服务器应返回304 Not Modified
。但是如果文档是动态生成的(php,perl等),那么生成器可能太懒了,无法检查此标题并始终返回完整的文档。