我有一個包含許多文件和目錄的站點。這些目錄有幾個層次。問題是他們在錯誤的目錄中。他們在/www/upload/site/
和一切應該被移動到/www/
。是否有一個簡短的腳本來移動所有兩個目錄?如何用PHP批量移動文件和目錄
謝謝。
我有一個包含許多文件和目錄的站點。這些目錄有幾個層次。問題是他們在錯誤的目錄中。他們在/www/upload/site/
和一切應該被移動到/www/
。是否有一個簡短的腳本來移動所有兩個目錄?如何用PHP批量移動文件和目錄
謝謝。
正如其他回答者所指出的那樣,PHP並不是最優雅的解決方案,只需下載一個FTP程序來移動文件就簡單多了。但是,如果你想實現這個使用PHP,你可以寫這樣的:
$dir=opendir('/www/upload/site/');
while ($file = readdir($dir)) {
if ($file == '.' || $file == '..') continue; // skip references to self
rename('/www/upload/site/'.$file, '/www/'.$file);
}
closedir($dir);
這個過程是低效的,並帶來了爲更容易的方法,如使用Rename Function或Copy Function不會工作你的情況。重命名會要求你重命名的目錄是空的,而不是從內部移動它,複製不能複製完整的目錄。因此,我們只剩下流程或循環遍歷每個文件,並使用PHP的每個單獨項目的重命名函數手動將它移動到新位置。
所以,雖然這個過程當然不是PHP所必需的,但完全有可能做到這一點,知道怎麼做總是有用的。有關使用文件/目錄的更多信息,請參閱PHP's File System Functions。
它工作完美。謝謝! – 2010-05-25 21:57:17
我不知道服務器是如何設置的,但可能這不會工作,因爲運行php腳本的用戶不太可能有權移動您上傳的文件(除非使用php腳本上傳文件以及...)。
你當然可以嘗試這樣的:
<?php
exec('mv /www/upload/site/* /www');
?>
,但我會很小心這一點。
它*有*是PHP腳本嗎?你的FTP客戶端應該能夠做到這一點,或者你可以用一個shell來做到這一點。 – 2010-05-25 20:50:36
問題是該網站在Godaddy上,對於某些網絡問題,我無法直接訪問控制面板,也無法使用FTP。我擁有的唯一訪問權限是通過VPN,它不允許我上傳文件。其實我有一個朋友的幫助下,在那裏的文件,但他們結束了錯誤的目錄。我可以使用控制面板的「新文件」並製作一個小腳本來運行VPN。 – 2010-05-25 21:07:14
我只是提到GoDaddy的名字而嘔吐。 – 2010-05-25 21:44:38