プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。

copy関数を用いて file1 を file2 にコピーすると、
作成時刻はプログラムの実行時になりますし
パーミッションも0644になってしまいます。
それは困るので時刻やパーミッションを保存してコピーすることは
出来ませんでしょうか。

やりたいことは
$command = "cp -a file1 file2";
system($command);
なんですが、UNIXコマンドをなるべくPHPの中に書きたくないのです。
すっきりしませんし…。

A 回答 (2件)

1の者ですが、おもいっきりとんちんかんな回答をして申し訳ありません(^^;


忘れてください(^^;;

個人的な考えなのですが、ファイル作成はともかく、パーミッションの操作や時間の管理となると、PHPの処理の範疇を超えている気がすると思います。

そこまでいくと、基本的にはサーバーのコマンドラインの世界に入ってしまうので、そこをPHPの関数で処理できるとなると、それはそれで問題になる気がします。

なので、そこはおとなしくsystem関数やexec関数などでコマンドラインを実行することをお勧めします。
    • good
    • 0
この回答へのお礼

PHPの関数には「chmod()」「filemtima()」「touch()」などもありますので、それらを組み合わせればなんとかなりそうですが
結局「system()」を使った方が記述も簡潔になりそうです。

ありがとうございました。

お礼日時:2008/08/08 10:26

cp -a file1 file2



ではなく

cp -p file1 file2

にすればいいかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!