2012-07-19 57 views
4

目錄中有一個文件,我試圖使用rename(arg1,arg2)重命名arg1文件。在PHP中使用重命名功能

但是,arg1文件包含亞洲字母,我收到文件不可用的消息。

我怎麼能解決這個問題

感謝

$elements = scandir($dir); 


foreach ($elements as $key => $value) 
{ 

    rename("./$value", "$newname"); 

} 
+0

我認爲你需要:'rename(」./「 。 $ value,$ newname);' – hjpotter92 2012-07-19 20:08:04

+0

您嘗試使用'。/'相對路徑重命名,是您嘗試重命名的當前目錄中的PHP文件?
因爲如果你的PHP腳本不在同一個文件夾中,你必須將整個路徑設置爲'rename' – PoulsQ 2012-07-19 20:10:13

回答

1

請務必正確放置路徑:

$elements = scandir($dir); 
foreach ($elements as $key => $value) { 
    rename($dir.'/'.$value, $dir.'/'.$newname); 
} 

不那麼抽象的,假設$ DIR是像「/ home/someuser/somefiles「,你的腳本位於」/var/www/script.php「,你從scandir($ dir)獲取所有文件(例如」oldname.txt「),所以文件的絕對路徑是「/ home/someuser/somefiles/o ldname.txt「,但是你將」./oldname.txt「傳遞給重命名函數,這實際上是」/var/www/oldname.txt「