【发布时间】:2016-05-07 02:47:59
【问题描述】:
顾名思义,有没有一种快速下载文件的方法,但要带上时间戳?
我正在编写一个基本缓存,除其他检查外,它还确定(通过get_headers)给定的本地文件是否与其远程对应文件相同。
我知道我可以file_get_contents / file_put_contents 然后touch() 带有get_headers 结果的文件,但是调用正在进行另一个 HTTP 调用(即使它是 HEAD 调用),我' d 只喜欢测试 Last-Modified 作为最后的手段。
那么有没有一种快速的“一次 HTTP 调用”方式来下载文件并保留时间戳?一些远程文件位于 FTP 服务器上,但许多是文本文件,和/或位于 Web 服务器上。
编辑:有人提出了一个相关问题,但我的问题有所不同,因为我希望获得远程修改日期而无需拨打第二个电话,这是基于 copy() 的答案所暗示的
$http_response_header 似乎可以解决问题,如下所示。
【问题讨论】:
-
正如您已经强调的那样,“下载”是一个相当笼统的术语。例如,Web 服务器可以选择发送或不发送
Last-Modified,即使发送也没有任何保证(如果它是脚本而不是静态文件呢?) -
@ÁlvaroGonzález 太对了。但是,因为我知道我正在使用的服务器总是返回 Last-Modified,所以我很乐意依赖它。我正在访问的文件是时间敏感的(Aurora Australis / Borealis 数据),因此这是他们发送 Last-Modified 标头的额外原因。
标签: php file-get-contents last-modified