2013-10-12 111 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命令你甚至不必擔心它。