2013-10-12 65 views
0

我想将文件夹从原始路径移到另一个文件夹。我发现了几个解决方案来做到这一点。Linux命令或PHP函数?

  • rename PHP函数:rename($oldpath, $newpath);

  • Linux命令直接从PHP:exec("mv $oldpath $newpath");

我想,这两种解决方案做同样的,但现在我要问:我应该使用哪个?更重要的是:为什么?

我认为最好是使用PHP函数来避免直接与操作系统交互,但我更喜欢更详细的意见。

+2

为什么?这很容易:webhosting服务经常阻止cmd执行函数。 – bwoebi

+0

如果webhosting允许这种命令会发生什么?我想他们出于安全原因阻止他们,不是吗?准确地说是 –

+0

。因为cmds不受open_basedir等的控制。 – bwoebi

回答

2

4个理由使用PHP命令:已经提到

  1. 一样 - 有更多的机会获得权限问题Linux命令。
  2. mv只适用于POSIX。如果您遇到在Windows上运行代码的需要,它将无法工作。
  3. PHP命令应该快一点,因为它不需要为mv实用程序创建新进程。
  4. 这是最重要的原因:使用exec,您需要手动转义路径。 $oldpath$newpath是否来自用户输入?如果$oldpath设置为--version;$newpath现在是独立命令,可以是例如rm/-rf
    当然,你可以逃避路径,但使用PHP命令你甚至不必担心它。