3

PHPスクリプトを使用してファイルの日付の変更を変更する必要があります。私のローカルホストでは、Windows 7 で実行されている XAMPP を使用しました。PHP touchを使用しても問題はなく、希望どおりに適切に動作しています。

しかし、それを本番環境の LINUX OS にアップロードすると、PHPtouchが機能しなくなりました。調査したところ、Linux では PHP が許可touchされていないか、ファイルの mod 日付の変更が許可されていないことがわかりました。

そのため、代わりに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 に答える