• 締切済み

copy() で属性保存

こんにちは。 copy関数を用いて file1 を file2 にコピーすると、 作成時刻はプログラムの実行時になりますし パーミッションも0644になってしまいます。 それは困るので時刻やパーミッションを保存してコピーすることは 出来ませんでしょうか。 やりたいことは $command = "cp -a file1 file2"; system($command); なんですが、UNIXコマンドをなるべくPHPの中に書きたくないのです。 すっきりしませんし…。

みんなの回答

  • twin_shu
  • ベストアンサー率100% (10/10)
回答No.2

1の者ですが、おもいっきりとんちんかんな回答をして申し訳ありません(^^; 忘れてください(^^;; 個人的な考えなのですが、ファイル作成はともかく、パーミッションの操作や時間の管理となると、PHPの処理の範疇を超えている気がすると思います。 そこまでいくと、基本的にはサーバーのコマンドラインの世界に入ってしまうので、そこをPHPの関数で処理できるとなると、それはそれで問題になる気がします。 なので、そこはおとなしくsystem関数やexec関数などでコマンドラインを実行することをお勧めします。

D_mode
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • twin_shu
  • ベストアンサー率100% (10/10)
回答No.1

cp -a file1 file2 ではなく cp -p file1 file2 にすればいいかと。

すると、全ての回答が全文表示されます。

関連するQ&A