Ciao a tutti,
vorrei scrivere solo una parte di un file di testo senza dover riscrivere tutto il file ...avete qualche idea???
Printable View
Ciao a tutti,
vorrei scrivere solo una parte di un file di testo senza dover riscrivere tutto il file ...avete qualche idea???
Qui c'è quello che ti serve :wink:
http://it2.php.net/manual/it/function.fopen.php
Non intendevo scrivere un file 'da capo' ma volevo modificare solo una riga di un file.... :=):
Com'è costruito il file che vuoi modificare?Citazione:
Originalmente inviato da toninosite
Giusto per andare direttamente al problema :wink:
ESEMPIO
riga1: toninosite
riga2: sito
riga3: file
io vorrei riscrivere a prima riga senza cancellare le altre quindi
riga1: toninosite
riga2: sito
riga3: nuovofile
Cioè vorresti che una riga x diventi y ?
Con il file strutturato ad esempio così:
ID_RIGA|NUM_RIGA|CONT_RIGA|\n
Così puoi modificare qualsiasi riga!Codice PHP:
<?
$id_riga = $_GET['id_da_modificare']; //ricavo l'id della riga da modificare in qualche modo (in questo caso lo prendo dall'url)
$file = file("file.txt");
foreach($file as $rigo) { //Scorro il file
$ex = explode("|",$rigo); //imposto il carattere da riconoscere per distaccare un elemento dall'altro
if($ex[0] == $id_riga) { //se l'id nella riga è uguale a quello preso
$w[] = "$id_riga|$ex[1]|nuovocontenuto!|\n"; //imposta quell'indice di array con un nuovo contenuto
}else{ //Altrimenti
$w[] = $rigo; //il pezzo di array rimane lo stesso del file
}
}
$ok = implode("",$w); //unisco l'array
$fp = fopen("file.txt","w+"); //apro in lettura il file cancellandone il contenuto
fwrite($fp, $ok); //scrivo la variabile che ha unito l'array
fclose($fp); //chiudo il file!
?>
Devi sempre leggere tutto il file e poi riscriverlo.Citazione:
Originalmente inviato da toninosite
Codice PHP:
<?
$file=file("nomefile.txt");
$file[2]="nuovo".$file[2];
$fp=fopen("nomefile.txt","w");
for($i=0;$i<count($file);$i++)
fwrite($fp,trim($file[$i])."\n");
fclose($fp);
?>
io volevo riscrivere solo la riga desiderata come un vettore ....diciamo..... :mrgreen: ho provato ad incrementare il puntatore che punta all'inizio del file ma niente....
Citazione:
Originalmente inviato da toninosite
:wink:Citazione:
Originalmente inviato da funcool