1

php如何在不下载整个网页的情况下检查页面是否更新?我是否需要查看标题?

4

2 回答 2

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');
于 2012-04-21T04:35:56.070 回答
2

您可以If-Modified-Since: <datetime>在请求中添加标头,304 Not Modified如果此后没有更改,服务器应返回 a 。但是如果文档是动态生成的(php、perl 等),生成器可能懒得检查这个标题并总是返回完整的文档。

于 2012-04-21T04:39:33.097 回答