gpt4 book ai didi

php - 检查远程文件是否已更改

转载 作者:可可西里 更新时间:2023-11-01 01:07:28 24 4
gpt4 key购买 nike

我正在使用 PHP cURL 模块通过 HTTP header 提取远程文件的时间戳。我已经设法通过使用 CURLOPT_FILETIME 常量来获取修改时间戳。当然,我这样做也是为了在不下载文件内容的情况下查看远程文件是否已更改。

$ch = curl_init($url);  /* create URL handler */
curl_setopt($ch, CURLOPT_NOBODY, TRUE); /* don't retrieve body contents */
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); /* follow redirects */
curl_setopt($ch, CURLOPT_HEADER, FALSE); /* retrieve last modification time */
curl_setopt($ch, CURLOPT_FILETIME, TRUE); /* get timestamp */
$res = curl_exec($ch);
$timestamp = curl_getinfo($ch, CURLINFO_FILETIME);
curl_close($ch);

在您看来,检查远程文件是否已更改的最佳方法是什么?我应该只使用时间戳检查吗?还是我没有想到其他一些聪明的选择?!

最佳答案

您的方法看起来很适合查找 Last-Modified 时间值。 (需要注意 CURLINFO_FILETIME 的 -1 返回,这意味着没有识别出 Last-Modified header 值。)

您可以保存返回的时间,并在将来检查它是否已更改。如果已更改,则通过 Curl 获取新文件。

另一种选择是保存 ETag 和 Last-Modified header ,然后使用条件请求再次获取图像。这会更复杂,但您每次都会保存额外的 HEAD 请求。您可以在这个 SO 问题中看到一些细节:if-modified-since vs if-none-match .

关于php - 检查远程文件是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com