新的php程序員在這裏。我一直試圖通過替換擴展名來重命名文件夾中的所有文件。使用PHP重命名文件夾中的所有文件
我正在使用的代碼是從the answer to a similar question on SO.
if ($handle = opendir('/public_html/testfolder/')) {
while (false !== ($fileName = readdir($handle))) {
$newName = str_replace(".php",".html",$fileName);
rename($fileName, $newName);
}
closedir($handle);
}
我運行代碼時沒有錯誤,但沒有改變的文件名進行。
任何洞察爲什麼這不工作?我的權限設置應該允許。
在此先感謝。編輯:當檢查rename()的返回值時,我得到一個空白頁,現在嘗試用glob()這可能是比opendir更好的選擇...?
編輯2:使用下面的第二個代碼片段,我可以打印$ newfiles的內容。所以數組存在,但str_replace + rename()片段無法更改文件名。
$files = glob('testfolder/*');
foreach($files as $newfiles)
{
//This code doesn't work:
$change = str_replace('php','html',$newfiles);
rename($newfiles,$change);
// But printing $newfiles works fine
print_r($newfiles);
}
嗨泰金,謝謝你的回答。不幸的是,我嘗試了它,並得到相同的結果,代碼不會產生錯誤,但不會有任何更改。 – Munner 2012-08-14 15:21:57
@Munner嘗試檢查重命名的返回值。如果它不能重命名文件,它應該返回false。這將有助於縮小問題的範圍。 – Telgin 2012-08-14 15:28:17