Visualizzazione risultati 1 fino 21 di 21

Discussione: 1° Riga file txt

  1. #1
    Guest

    Predefinito 1° Riga file txt

    Ragazzi vorrei scrivere sulla PRIMA riga del file txt.
    Sò come si fa però alla prossima scrittura voglio che si cancelli completamente la prima riga e esca quello che ho appena scritto.
    Molti mi hanno consigliato di usare il tipo W o W+ ed è giustissimo però dopo alla chiusura del sito la scritta scompare nel file.txt e io non voglio questo.

    Se invece usco il Tipo a mi sostituisc parte della parola (dipende dalla lunghezza)
    Esempio:
    Se cio scrivo"benvenuto" sulla prima riga e poi riscrivo "ciao" sul file txt mi uscirà "ciaoenuto" perche la prima parola è più lunga.
    Io invece vorrei che qualunque parola o frase stesse sulla prima riga viene completamente sovrascritto da testo o parola nuova, o magari prima cancellare la prima riga e poi riscrivere, non so aiutatemi voi.
    Ho cercato di spiegarvi il problema nel miglior modo possibile sperò che sia tutto chiaro.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Usa la funzione file() per leggere il file.
    A questo punto hai un array, dove in ogni elemento hai la stringa che rappresenta la riga del file. Quindi modifica l'elemento [0], poi riconverti l'array in stringa ad esempio con implode(), quindi riscrivi il file con la file_put_contents().

    Un altro modo sarebbe quello di leggere il file con la file_get_contents(), poi cancelli tutto fino al primo \n (ad esempio con substr() + strpos(), quindi riscrivi con la file_put_contents() facendo precederci la stringa che vuoi scriverci.

    Ciao!
    Ultima modifica di alemoppo : 17-01-2014 alle ore 16.35.46

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Usa la funzione file() per leggere il file.
    A questo punto hai un array, dove in ogni elemento hai la stringa che rappresenta la riga del file. Quindi modifica l'elemento [0], poi riconverti l'array in stringa ad esempio con implode(), quindi riscrivi il file con la file_put_contents().

    Un altro modo sarebbe quello di leggere il file con la file_get_contents(), poi cancelli tutto fino al primo \n (ad esempio con substr() + strpos(), quindi riscrivi con la file_put_contents() facendo precederci la stringa che vuoi scriverci.

    Ciao!
    Potresti farmi un esempio con il primo caso?
    P.S funziona ma il contenuto del file viene cancellato alla chiusura della pagina web
    Ultima modifica di ramishapp : 17-01-2014 alle ore 17.02.55

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Alla chiusura della pagina web? Perché?
    Puoi mostrare quel che hai provato?

    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Alla chiusura della pagina web? Perché?
    Puoi mostrare quel che hai provato?

    Ciao!
    Codice PHP:
    $occhiello = $_POST['occhiello'];


    $fil = file("occhiello.txt");

    $fil[0]=0;

    implode ($fil);


    file_get_contents ("occhiello.txt", $occhiello);
    poi ho messo che visualizza il contenuto del file txt in una pagina html tramite <?php include("occhiello.txt"); ?>

    chiudo chrome lo riapro metto il link della pagina e non mi visualizza più il contenuto perchè l'interno del file è vuoto

    EDIT: ora non me lo salva neanche la prima volta... come devo fare?
    Ultima modifica di alemoppo : 17-01-2014 alle ore 17.36.59 Motivo: +tag [php]

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Perché la prima riga l'hai messa a 0? Se vuoi eliminarla, devi assegnargli una stringa nulla.
    Implode, ritorna la stringa, quindi richiamarla senza prendere il contenuto, non ha senso.
    Per scrivere su file, devi usare la file_put_contents(), e non la file_get_contents() !

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Perché la prima riga l'hai messa a 0? Se vuoi eliminarla, devi assegnargli una stringa nulla.
    Implode, ritorna la stringa, quindi richiamarla senza prendere il contenuto, non ha senso.
    Per scrivere su file, devi usare la file_put_contents(), e non la file_get_contents() !

    Ciao!
    Funziona ma se chiudo la pagina web e la riapro non mi visualizza più il contenuto del file txt perchè me lo svuota.
    Come se fosse una sessione.

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Scusami ma devo andar a studiare, quindi ti ho fatto lo script:

    Provalo da qui.
    Qui il file occhiello.txt.

    Codice PHP:
    <?php
    if(isset($_POST['occhiello']))
    {
    $fil = file("occhiello.txt"); //leggo il file
    $fil[0]=$_POST['occhiello']."\n"; //cambio il primo elemento come voglio io
    file_put_contents('occhiello.txt', implode($fil)); //riscrivo il file
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> cambio prima riga file </title>
    <style type="text/css">
    textarea
    {
    width: 200px;
    height: 100px;
    }
    </style>
    </head>
    <body>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
    Modifica la prima riga: <input type="text" name="occhiello">
    <input type="submit" value="invia">
    </form>

    <p>File attuale:</p>
    <textarea><?= file_get_contents('occhiello.txt'); ?></textarea>
    </body>
    </html>
    Ciao!

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Scusami ma devo andar a studiare, quindi ti ho fatto lo script:

    Provalo da qui.
    Qui il file occhiello.txt.

    Codice PHP:
    <?php
    if(isset($_POST['occhiello']))
    {
    $fil = file("occhiello.txt"); //leggo il file
    $fil[0]=$_POST['occhiello']."\n"; //cambio il primo elemento come voglio io
    file_put_contents('occhiello.txt', implode($fil)); //riscrivo il file
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> cambio prima riga file </title>
    <style type="text/css">
    textarea
    {
    width: 200px;
    height: 100px;
    }
    </style>
    </head>
    <body>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
    Modifica la prima riga: <input type="text" name="occhiello">
    <input type="submit" value="invia">
    </form>

    <p>File attuale:</p>
    <textarea><?= file_get_contents('occhiello.txt'); ?></textarea>
    </body>
    </html>
    Ciao!
    Forse non mi sono spiegato bene, funziona benissimo ma se io copio l'url---> chiudo chrome---->incollo url---->invio---->non mi visualizza più quello che ho scritto... non so perche non va, il tuo esempio funziona bene! ho fatto copia e incolla dal tuo script tranne questa parte che non mi serve <?= $_SERVER['PHP_SELF'] ?> ...

    ecco com'è precisamente:
    if($occhiello<>"rimani invariato")
    {
    $fil = file("occhiello.txt");

    $fil[0]=$_POST['occhiello']."\n";

    file_put_contents('occhiello.txt', implode($fil));

    }
    anxhe rimuovendo l'if lo fa... sto impazzendo.
    Ultima modifica di ramishapp : 17-01-2014 alle ore 18.12.05

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Io lo vedo modificato da te: http://alemoppo.altervista.org/LABS/.../occhiello.txt
    Non mi ha eliminato nulla...

    EDIT: probabilmente hai qualche errore da qualche parte: scrivi tutto il sorgente e poi si vedranno gli eventuali errori.

    Ciao!
    Ultima modifica di alemoppo : 17-01-2014 alle ore 18.05.36

  11. #11
    Guest

    Predefinito

    Codice:
    <?php
    
    $occhiello = $_POST['occhiello'];    
    $titolo=$_POST['titolo'];   
    
    $grandezza = filesize("occhiello.txt");
    $grandezza=$grandezza+1;
    
    $grandezza1 = filesize("titolo.txt");
    $grandezza1=$grandezza1+1;
    
     
    if($occhiello<>"rimani invariato") 
    {
    $fil = file("occhiello.txt");
    
     $fil[0]=$_POST['occhiello']."\n";
    
    file_put_contents('occhiello.txt', implode($fil));
    }
    ?>
    
    <html>
         <head>
             <title>OTTO ITIS</title>
             <style type="text/css">
              @import url("layout1200.css") screen and (min-device-width: 1200px);
              @import url("layout1024.css") screen and (min-device-width:1020px) and (max-device-width:1100px);
             </style>
          </head>
    <body>
    
      <marquee onmouseover="this.stop()" onmouseout="this.start()"><a href="http://www.ramishapp.altervista.org/Gestione/Amministratore/login.html"> <p class="articolo">CLICCAMI e Inserisci il tuo Articolo Ora!</p></a></marquee>
        
    <div id="centratonav">
        
    
    
          
        <div id="logod">
         <img src="logo.png" width="200px" height="150px">
        </div>
    
         <div id="logos">
        <img src="logo.png" width="200px" height="150px">
        </div>
    
    
           <div id="centrato">
           <img src="centrale.png" width="500px" height="150px">
          
         </div>     
    
    </div>
    
    <div id="pagina">
    
          <div id="finestra">
                 <div id="finestrat">
                    <p class="titolof">Progetto VD:work in progress</p>
                 </div>
                <div id="finimg">
                       <img src="progetto.png" width="195px" height="150px">
                </div>
                 <p class="testof">Finalmente la classe VD decide il suo progetto da portare agli esami di Maturità grazie anche alla 
                                                  collaborazione del Prof. Gearardo Pagliarulo; dalle informazioni date dall'Alunno Giuseppe Del Viscovo
                                                  supponiamo che si basi tutto sulla "Porta Parallela" e dei motori Passo Passo ovvero "Step by Step".
                                                  Tra pochi giorni sapremo tutte le informazioni sul relativo progetto.
                  </p>
    
    
    
                   <div id="finestra1">
                 <div id="finestrat1">
                    <p class="titolof">Quanto costa uno Studente Universitario?</p>
                 </div>
                 <p class="testof">La crisi economica abbasserebbe  i costi per chi sceglie di studiare lontano da casa e così, studiare da fuorisede, diventa meno oneroso. Nell'autunno 2012 lo sosteneva il Movimento dei Consumatori che in un confronto con il 2011 rilevava che a Milano per un posto letto in doppia si pagava sui 325€ con un calo del 14% rispetto al 2011. A Roma per una singola nel 2012 si era passati dai 625€ ai 520€ circa mentre a Napoli aumentavano leggermente. 
    Qual è la situazione oggi, a ridosso dell'inizio di un nuovo anno accademico? I prezzi in generale si mantengono su quelli del 2012 con picchi verso l'alto nelle zone più prossime alle università o collegate meglio.
                  </p>
            </div>
    
    
            </div>
        
    
    
    
           <div id="occhiello">
               <p class="occhiello"><?= file_get_contents('occhiello.txt'); ?> </p>
           </div>
         
          <div id="titolo">
             <p class="titolo"> </p>
          </div>
    
    
           <div id="sommario">
               <p class="occhiello"> Prof Minichiello minaccia gli alunni:"Se non sarete assidui vi porto con 3"</p>
           </div>
    
           <div id="imgmat">
           <img src="maturita.jpg" width="590px" height="250px">
           </div>
    
          <div id="tesmat">
              <p class="tesmat">Le commissioni d'esame per ciascuna classe sono composte da tre docenti interni[2] e quattro esterni, uno dei quali presiede la commissione. Condizioni particolari possono implicare l'estensione ad un numero maggiore di membri, con due o più commissari per la lingua straniera, che in occasione delle deliberazioni concordano e concorrono nella formulazione di un unico voto[3][4].
    Il test è diviso in una parte scritta (di tre o quattro prove) e una orale. La Prima Prova è identica per tutte le scuole d'Italia[1].
    Dall'Esame di Stato dell'a.s. 2011/2012 la prima e la seconda prova non vengono più inviate alle commissioni in busta chiusa, ma pubblicate da un server statale e prelevate dai docenti la mattina dell'esame utilizzando due password di cui una di 25 caratteri comunicata la mattina stessa dal Ministero della Pubblica Istruzione.
              </p>
          </div>
         
    
    
        <div id="spalla"> 
             
        <div id="tisspalla">
            <p class="titspalla">Studenti:è dopo la maturità?</p>
        </div>
             <img src="uni.png" width="400px" height="200px">
            <p class="tespalla">Ogni anno centinaia di migliaia di giovani arrivano alla maturità con apprensione e preoccupazione. Ci sono gli scritti che fanno paura. C'è il colloquio orale che spaventa più di ogni cosa. Eppure molti di loro, superata la strettoia dell'esame, si accorgono che la cosa più difficile, non è passare quell'ostacolo. Quel che è più arduo è scegliere cosa fare dopo. Sì, perché molti di loro, circa un terzo, prima di prendere la decisione che può segnare la propria vita, aspetta di finire le superiori e mettersi alle spalle quel groviglio di sensazioni che è la maturità. E qualcuno lo fa addirittura dopo settembre, dopo avere trascorso l'ultima spensierata estate. 
    </p>
        </div>
    
    
    </div>
    
    
    
    
    
    
    </body>
    </html>
    Ultima modifica di alemoppo : 17-01-2014 alle ore 19.04.32 Motivo: +tag [code]

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Guardandolo velocemente (non l'ho né guardato tutto, né provato):

    • Devi considerare anche l'ipotesi che i dati $_POST non vengono inviati. Quindi controlla $_POST[] con la isset() come nel mio esempio.
    • L'operatore di disuguaglianza è != e non <>.


    Ciao!

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Guardandolo velocemente (non l'ho né guardato tutto, né provato):

    • Devi considerare anche l'ipotesi che i dati $_POST non vengono inviati. Quindi controlla $_POST[] con la isset() come nel mio esempio.
    • L'operatore di disuguaglianza è != e non <>.


    Ciao!
    I dati penso che vengono inviati altrimenti non me li visualizzerebbe neanche la prima volta.

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    I dati vengono inviati se viene inviato il form. Se apri la pagina normalmente, non ci sono ($_POST[] non è definito).
    Se invece quella pagina è visualizzabile solo dopo aver inviato i dati dal form, allora ok (ma è bene controllare comunque $_POST).

    In che senso non si visualizzerebbe nemmeno la prima volta?
    Codice PHP:
    <?= file_get_contents('occhiello.txt'); ?>
    è indipendente da $_POST.

    Ciao!

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    I dati vengono inviati se viene inviato il form. Se apri la pagina normalmente, non ci sono ($_POST[] non è definito).
    Se invece quella pagina è visualizzabile solo dopo aver inviato i dati dal form, allora ok (ma è bene controllare comunque $_POST).

    In che senso non si visualizzerebbe nemmeno la prima volta?
    Codice PHP:
    <?= file_get_contents('occhiello.txt'); ?>
    è indipendente da $_POST.

    Ciao!
    Quindi cosa mi consigli di fare?
    EDIT: ho verificato, all'apertura diretta della pagine ha il $_POST['occhiello'] vuoto
    Ultima modifica di ramishapp : 17-01-2014 alle ore 22.25.33

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Citazione Originalmente inviato da ramishapp Visualizza messaggio
    ho verificato, all'apertura diretta della pagine ha il $_POST['occhiello'] vuoto
    Sì, perché non esiste. Quindi è diverso da:
    Codice:
    "rimani invariato"
    Quindi entra nell'if, ed elimina la prima riga.

    Ciao!

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Sì, perché non esiste. Quindi è diverso da:
    Codice:
    "rimani invariato"
    Quindi entra nell'if, ed elimina la prima riga.

    Ciao!
    Ma se rimuovo l'if comunque mi scrive la riga vuota nel txt...

    EDIT : risolto mentendo questo if: if( $_POST['occhiello'] != Null)
    Ultima modifica di ramishapp : 17-01-2014 alle ore 22.46.24

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Hai sostituito "<>" con "!=" ?

    EDIT: ma devi usare isset() come ti ho detto prima.

    Ciao!
    Ultima modifica di alemoppo : 17-01-2014 alle ore 22.49.29

  19. #19
    Guest

    Predefinito

    Sisi ho fatto tutto grazie mille alemoppo per il tuo aiuto! sei stato disponibile due giorni con risposte quasi immediate, GRAZIE!

  20. #20
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Citazione Originalmente inviato da ramishapp Visualizza messaggio
    Sisi ho fatto tutto grazie mille alemoppo per il tuo aiuto! sei stato disponibile due giorni con risposte quasi immediate, GRAZIE!
    Figurati (comunque non son stati due giorni, ma il topic è iniziato oggi alle 15:00 ). Comunque, rileggendo:
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Quindi entra nell'if, ed elimina la prima riga.
    Non era una frase imperativa: non intendevo che dovevi eliminar la prima riga, ma stavo descrivendo quel che faceva il codice!

    Ciao!
    Ultima modifica di alemoppo : 17-01-2014 alle ore 22.58.58

  21. #21
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Figurati. Comunque, rileggendo:

    Non era una frase imperativa: non intendevo che dovevi eliminar la prima riga, ma stavo descrivendo quel che faceva il codice!

    Ciao!
    SIsi ho capito che eliminava la prima riga del FILE.TXT infatti ho ragionato e grazie a quello che hai scritto ho capito tutto! :D
    Ultima modifica di ramishapp : 17-01-2014 alle ore 23.01.41

Regole di scrittura

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