• User Newbie

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


  • User Attivo

    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++;