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..