我正在使用PHP cURL模块通过HTTP标头提取远程文件的时间戳。我设法通过使用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);
在您看来,检查远程文件是否已更改的最佳方法是什么?我应该只使用时间戳检查吗?还是有其他一些聪明的选择,我不介意?!
如果你有ftp访问,你可以找到实际的文件修改时间。 –
为什么你要遵循重定向?比较文件大小也可以帮助您找出有关更改的信息。并且可能有ETAG标题值。 – hakre
我遵循重定向,因为我最终期待图像文件,并且用户可能会提供缩短的链接。 OTOH,'ETAG'可能会提供,但并非总是如此。当然我也会检查文件大小。 – aL3xa