Visualizzazione risultati 1 fino 6 di 6

Discussione: Andare a capo scrivendo in un file di testo

  1. #1
    Guest

    Predefinito Andare a capo scrivendo in un file di testo

    Salve a tutti.
    Allora...
    io per scrivere in un file di testo uso questo sistema (ho imparato da un giorno, non so se è proprio giusto ):

    Codice PHP:
    $stringa1="Ciao come stai?";
    $stringa2="Benissimo LOL!";
    //Le frasi sono di fantasia ;)
    $file=fopen("file.txt","w");
    fput($file,$stringa1);
    fput($file,$stringa2);
    fclose($file);
    Il problema è che non so come far andare a capo il testo fra $stringa1 e $stringa2...
    Anzi, il vero problema è questo (ora posto il codice che ho usato per prova, ho usato "\n"):

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html lang="it">
    <head>
    <title>CIAO</title>
    <?php if( isset($_GET['invia']) ){ ?> <meta http-equiv="refresh" content="0; aaa.php"> <?php } ?>
    </head>
    <body>
    <?php
    $ar_righe
    =file("style.txt");
    for(
    $contarighe=0;$contarighe<=count($ar_righe)-1;$contarighe++){
    echo
    "$contarighe".") $ar_righe[$contarighe]"."<br>";
    }
    ?>
    <form action="?invia" method="post"><input name="testo" type="text" size="100"></form>
    <?php
    if( isset($_GET['invia']) ){
    $filestyle=fopen("style.txt","w");
    for(
    $contarighe=0;$contarighe<=count($ar_righe)-1;$contarighe++){ fputs($filestyle,$ar_righe[$contarighe]); fputs($filestyle,"\n"); }
    fputs($filestyle,$_POST['testo']);
    fclose($filestyle);
    }
    ?>
    </body>
    </html>
    Però quando nel file di testo ci sono tre righe o più visualizza un "A CAPO" in più del previsto per ogni riga!

    Come potrei fare?

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non ho ben capito il tuo problema, comunque il tuo primo script diventa così:
    Codice PHP:
    $stringa1="Ciao come stai?";
    $stringa2="Benissimo LOL!";
    //Le frasi sono di fantasia ;)
    $file=fopen("file.txt","w");
    fputs($file,$stringa1."\n");
    fputs($file,$stringa2);
    fclose($file);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da Funcool
    Non ho ben capito il tuo problema, comunque il tuo primo script diventa così:
    Codice PHP:
    $stringa1="Ciao come stai?";
    $stringa2="Benissimo LOL!";
    //Le frasi sono di fantasia ;)
    $file=fopen("file.txt","w");
    fputs($file,$stringa1."\n");
    fputs($file,$stringa2);
    fclose($file);
    OK, il primo funziona.
    Comunque, come detto prima, il vero problema sta nel secondo.
    Cercherò di spiegarlo: sono due file in uno.
    Quello che appare per primo, quando la variabile $_GET['invia'] non c'è consiste nell'estrapolamento delle varie righe del file di testo in questione e nella visualizzzazione in ordine di esse.
    In basso c'è Un form che invia via post allo stesso file ma con variabile $_GET['invia'] che elabora la variabile pervenutagli via post.
    Estrapola nuovamente le righe del file e riscrive il file con queste più la riga arrivata via post.
    Subito questa pagina fa un redirect alla precedente per visualizzare i nuovi dati.
    Il problema che aggiunge "A CAPO" superflui fra ogni riga tranne che nelle ultime due...

  4. #4
    Guest

    Predefinito

    è normale che ci siano degli "a cpo" superflui perchè tu ogni volta che riscrivi una linea aggiungi un a capo...comunque ecco il coidece corretto

    mi sono permesso di fare qualche aggiustatina qua e là scrivendoti qualche consiglio per il futro...

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html lang="it">
    <head>
    <title>CIAO</title>
    <?php if( isset($_GET['invia']) ){ ?>
    <meta http-equiv="refresh" content="0; aaa.php">
    <?php } ?>
    </head>
    <body>
    <?php
    $ar_righe
    =file("style.txt");
    for(
    $contarighe=0, $numrighe=count($ar_righe);$contarighe<$numrighe;$contarighe++){ //come avrai notato ho assegnato al valore della funzione count() una varibile che ho inserito nel primo blocco del for, questo serve per evitare di ripetere ad ogni iterazione al funzione count() risparmando tempo. 2^ cosa scrivere x < = y-1 è lo stesso di x < y però il secondo sisteam è più elgante e performante...
    echo "$contarighe) $ar_righe[$contarighe] <br>"; //gli operatori di concatenzaione non ti servono...
    }
    ?>
    <form action="?invia" method="post"><input name="testo" type="text" size="100"></form>
    <?php
    if( isset($_GET['invia']) ){
    $filestyle=fopen("style.txt","a");//ho usatoil mode append per evitare di dover riscrivere tutto ripsparmiando quindi tempo
    fputs($filestyle,$_POST['testo']."\n");
    fclose($filestyle);
    }
    ?>
    </body>
    </html>
    ps
    ricorda di indentare sempre il codice, anche se è molto smeplice...così prendi l'abitudine...

  5. #5
    Guest

    Predefinito

    Grazie SoulHome! Ora mi funziona perfettamente!

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Visto che risolto, chiudo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •