3

我需要使用我的 php 脚本修改文件日期更改。在我的本地主机上,我使用了在 Windows 7 中运行的 XAMPP。我使用 PHP touch没有问题,并且可以正常工作。

然而,当我将它上传到我的产品时,LINUX OS PHPtouch不再工作了。我对其进行了调查,发现 Linux 不允许 PHPtouch或不允许任何人更改文件修改日期。

这就是为什么我改用exec("touch filename.txt")并且它可以正常工作的原因,但是当我使用此代码时

exec("touch -t 201204040000.00 filename.txt");

它没有做它必须做的事情,我在这里错过了什么吗?

这些是我的参考:

编辑

ls -l filename.txt
-rw-r--r-- 1 2012-11-04 12:00 filename.txt //supposed that 2012-11-04 12:00 is the original mod date of the file

如果我运行此代码:

exec("touch filename.txt");
ls -l filename.txt
-rw-r--r-- 1 2012-11-05 11:00 filename.txt //supposed that 2012-11-05 11:00 is the current timestamp

正如大家所见,上面的代码在我身上正常工作。但如果我这样运行它:

exec("touch -t 201204040000.00 filename.txt");
ls -l filename.txt
-rw-r--r-- 1 2012-11-05 11:00 filename.txt //The mod date doesn't changed at all.
4

1 回答 1

1

我运行了你的命令,它确实做了它应该做的事情:

php -r 'exec("touch -t 201204040000.00 filename.txt");'
ls -l filename.txt
-rw-r--r-- 1 2012-04-04 00:00 filename.txt

也许如果您告诉我们您的期望,我们可以为您提供更多帮助。

于 2012-11-05T09:18:12.333 回答