in una pagina php modifico delle voci di un file, creandomene prima uno di backup

Codice 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 ";

$theFile contiene il path completo del file da modificare
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ò: