0

我正在尝试将文件夹从其原始路径移动到另一个文件夹。我找到了几个解决方案来做到这一点。

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

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

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

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

4

1 回答 1

2

使用 PHP 命令的 4 个理由:

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