Nella cartella "file" ho una serie di file da rinominare tutti come in questo esempio:
"12_03_08 - file.txt" sarà tramutato in "2008_03_12 - file.txt"
La variabile $stringa contiene alla fine il nome del file cambiato, ed è esatta. Il problema sta invece nella funzione rename(): per qualche motivo che non capisco, mi rinomina il file più di una volta, ovvero reitera il procedimento per quattro volte invece di una sola (con il risultato che il file risulta rinominato in modo sbagliato).
Ho provato a commentare la funzione rename() e a stampare $stringa, e non ho avuto nessun problema: mi mostra i file rinominati una sola volta.
Cosa sbaglio nella funzione rename()?
Codice PHP:
if ($handle = opendir('file')) {
//Parte da aggiungere all'anno se lo si desidera a 4 cifre. Se si desidera mantenerlo com'è all'origine, lasciarlo vuoto, ovvero ""
$esteso="20";
while (false != ($file = readdir($handle))) {
if(!is_dir($file)){
$stringa="";
$parti=substr($file,8);
$parti2=substr($file,0,8);
$data=explode("_",$parti2);
$stringa.=$esteso.$data[2]."_".$data[1]."_".$data[0];
$stringa.=$parti;
rename("file/$file", "file/$stringa");
echo $file." <span class=\"testo10px\">rinominato in</span> ".$stringa."
";
}
}
closedir($handle);
}