- Home
- Categorie
- Coding e Sistemistica
- Coding
- Lettura e scrittura file di testo
-
Lettura e scrittura file di testo
Salve a tutti.
In pratica uso questo codice per prendere delle linee da un file di testo e li metto all'interno di un array, modifico il valore chedevo modifica re poi devo riscrivere il file.
Tutto apposto tranne che non riesco a scrivere il file.....HELP.$tipo = $_GET["tipo"];
$idGet = $_GET["ID"];$fp = fopen ("materiali.txt","r");
while ($tabella = fscanf ($fp, "%d\t%s\t%s\n")) {
list ($ID,$nome,$numero) = $tabella;
if(($tipo == 0) && ($ID==$idGet))
$numero=+1;
elseif(($tipo == 1) && ($ID==$idGet))
$numero=-1;
}
fclose($fp);$fp=fopen("materiali2.txt", "w");
$i=0;
while(list($ID,$nome,$numero)= $tabella){
fputs($fp, $ID);
echo $nome;
echo $tabella[0];
echo $tabella[1];
}
fclose($fp);
//header("location: lista.php");
-
Tieni conto che $tabella non è niente, in quanto viene popolato dal primo loop ma quando esce non c'è più niente.
Forse volevi popolare $tabella, allora nel primo loop devi usare $tabella con un indice, ad esempio $tabella[$numero] oppure $tabella[], in questi casi il secondo loop diventa così:$fp=fopen("materiali2.txt", "w"); foreach ($tabella AS $indice => $tab){ list($ID,$nome,$numero)= $tab; fputs($fp, $ID . "\t" . $nome . "\t" . $numero . "\n"); } fclose($fp);
Tanto per informazione, invece che:
$numero=+1;
puoi scrivere:
$numero++;