allora, modificare contenuto file senza aprire file è altamente impossibile.. io faccio così:
guardati questa funzione che sto ustilizzando, potrebbe fare al caso tuo:
io metto in un file dati.inc.php le variabili che mi servono a tutte le pagine e in tutte le pagine includo il file..
praticamente passo a questa funzione i valori nuovo (puoi acquisirli tramite post e poi richiamare la funzione) e tramite questa aggiorno i file "di database"..
Codice PHP:
<?
function creaDati($pwd,$sez,$des_sez) //sez array - des_sez array
{
global $password,$sezioni,$descrSezioni;
if (file_exists("dati.inc.php"))
require ("dati.inc.php");
else
{
$password='admin';
$sezioni=array();
$descrSezioni=array();
}
if (isset($pwd))
{unset ($password); $password=$pwd;}
if (isset($sez))
{unset ($sezioni); $sezioni=$sez;}
if (isset($des_sez))
{unset ($descrSezioni); $descrSezioni=$des_sez;}
$crea=fopen("dati.inc.php",'w');
fputs($crea,"<?php\n");
/*Scrive password*/
fputs($crea,"\$password=\"$password\";\n");
/*Scrive nomi sezioni*/
for ($x=0;$x<sizeof($sezioni);$x++)
fputs($crea,"\$sezioni[$x]=\"".addslashes(strtolower($sezioni[$x]))."\";\n");
/*Scrive descrizione sezioni*/
for ($x=0;$x<sizeof($descrSezioni);$x++)
fputs($crea,"\$descrSezioni[$x]=\"".addslashes($descrSezioni[$x])."\";\n");
fputs($crea,"?>");
fclose($crea);
}
?>
naturalmente alla fine del riaggiorno se hai delle variabili ceh dipendono dal contenuto dei dati del file dati.inc.php le devi ricreare, altrimenti rimangono ai valori vecchi e fanno casino..
spero di essere stato utile 
..IcE..