PHPでフォルダとファイルごとコピー

PHPでフォルダとその中に含まれるファイルを丸ごとコピーしたかったのだが、ググってみると通常のPHPではそんな関数はないようで、Perlとか使ったりしている人が結構いたんだが、ちょい手間でした。

それで、一番手っ取り早い、PHPからLinuxコマンドを直接叩くプログラム実行関数の出番です。

exec("cp -r /from/dir /to/dir");

この際、コピー元のフォルダ&ファイルが「nobby」or 「apache」or「www」(環境による) で、 「cp」コマンドの実行が可能。且つ、コピー先のディレクトリに実行権限がある必要があります。

また、exec関数はセキュリティ上注意することが必要ですので、フォームの内容によって、コマンドの内容を外部から変えられないようにしておく必要ありです。

他にもPHPからコマンドをコールするには次の関数も使えるようです。

system()
exec()
popen()
shell_exec()
paththru()