我需要使用我的php脚本修改文件日期更改。在我的localhost中,我使用了在Windows 7中运行的XAMPP。我使用PHP touch没有问题,并且正如我想要的那样正常工作。
然而,当我将它上传到我的作品LINUX OS时,PHP touch
不再起作用了。我调查了它,发现Linux,不允许PHP touch
或不允许任何人更改文件模式日期。
这就是为什么我使用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.
答案 0 :(得分:0)
我执行了你的命令,它确实完成了它应该做的事情:
php -r 'exec("touch -t 201204040000.00 filename.txt");'
ls -l filename.txt
-rw-r--r-- 1 2012-04-04 00:00 filename.txt
如果您告诉我们您的期望,我们可以为您提供更多帮助。