![]()
in una pagina php modifico delle voci di un file, creandomene prima uno di backup
$theFile contiene il path completo del file da modificareCodice PHP:
$renamedFile=getFileNewName($theFile);
$arFor2Del=$HTTP_POST_VARS["sel"];
//print "Eliminare codici:".print_R($HTTP_POST_VARS["sel"],true)."
\n";/**/
if(rename($theFile,$renamedFile)){
if(($arFile=file($renamedFile))!==FALSE){
if($fp=fopen($theFile.".tmp","w")){
for($i=0;$i<count($arFile);$i++){
$arRiga=explode(";",$arFile[$i]);
$codFor=$arRiga[0];
//print "$codFor è fra quelli da eliminare?";
if(!in_array($codFor,$arFor2Del)){
//print "no";
if(!fwrite($fp,$arFile[$i])){
$temp="Errore in scrittura";
break;//esco dal for
}
//print " (scritto ".$arFile[$i].")";
}
//print "\n
";
}/**/
fclose($fp);
if(!rename($theFile.".tmp",$theFile)){
$temp="Errore salvataggio da tmp";
}
}else{
$temp="Errore creazione file : $theFile.tmp ";
}
}else{
$temp="Errore apertura file backup: $renamedFile ";
}
}else{
$temp="Errore creazione file backup: $renamedFile ";
}
getFileNewName($theFile) ritorna il nome del file più una parte annomesegiorno
il problema è che quando vado a riaprire $theFile me lo trovo uguale a prima delle modifiche (le varie print mi confermano quando entro nei vari rami if)
da cosa potrebbe dipendere? è php o qualche problema di cache OS (centOS)?
oppicò: