我的服务器上有数百个 mp3 文件。每个文件modified-date
都很重要,因为它由 PHP 获取filemtime
以表示其上传日期(因为如果不将值存储在数据库中就无法确定上传时间)。
我遇到了一个音频问题,其中所有文件都需要规范化并重新上传到服务器。当然,这会将modified-date
每个文件的 更改为“今天”。我需要每个文件保留它的原始modified-date
.
我不确定这是软件推荐问题还是编程问题,所以如果这是错误的 .SE 站点,我深表歉意。这甚至可能吗?
您应该可以通过触摸设置修改时间:http: //php.net/manual/en/function.touch.php
这需要 PHP > 5.3 并且运行脚本的用户(可能是您的 Web 用户,除非您从 cli 运行它)需要对文件具有写入权限。
您有两种实施方案:
将文件名及其 mtime 存储在临时存储(文件或数据库表)中。完成上传后,运行所有文件并使用 touch 重置 mtime。
上传文件时,请检查文件是否已存在。如果是这样,请在临时变量中获取 mtime,覆盖文件,然后用正确的 mtime 触摸它。
我知道这不是您要寻找的答案,但是开始将这些信息存储在数据库中比依赖上次修改日期更有意义。通过这种方式,您可以向用户显示他们需要知道的日期并保留修改的真实日期。
像这样的方法也为您提供了更多的灵活性。
根据@Snailer 的要求 - 为了结束这个问题。