Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    (file di testo) a capo automatico

    Scusate l'ignoranza, supponiamo che io voglia scrivere dei dati presi da un form in un file di testo, ma voglio che questi dati (immessi volta per volta da utenti differenti) vengano scritti ciascuno su una riga... esempio:

    $file = "file.txt";
    $nome = $_POST['nome'];
    ...
    $fp = fopen($file, "a+";
    $write = fwrite($fp, $nome);
    $fc = fclose($fp);
    il risultato sarà un file di testo con il seguente contenuto:

    nome1nome2nome3nome4nome5 ecc.

    Se io voglio che ogni nome appaia nel file.txt occupando una riga come devo fare?

    ES.

    nome1
    nome2
    nome3
    nome4
    nome5

    Se è stupida come domanda scusatemi
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    prova con \n (nuova riga) \r (a capo).
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  3. #3
    nl2br($testo);
    nl2br tiene traccia dell'intero file di testo quindi compreso gli a capo..

  4. #4
    ovviamente in quel codice che ho scritto mancava una parentesi...
    Se uso \n mi appare un rettangolino sul file di testo e i dati vengono scritti in maniera conseguenziale e con \r la stessa identica cosa... di seguito un esempio tipico:

    $username = $_POST['username'];
    $password = $_POST['password'];
    $nome_file = "file.txt";
    $separatore = "----";
    $contenuto = "$username$separatore$password\r";

    $fp = fopen($nome_file, "a+");
    $scrivi = fwrite($fp, $contenuto);
    $chiudi = fclose($fp);

    il file verra scritto così:
    nome1(rettangolino)nome2(rettangolino) ecc.

    stessa cosa con \n

    non ho capito il nl2br($testo) che vuol dire? dove lo devo mettere?
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  5. #5
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    nl2br($testo);
    nl2br tiene traccia dell'intero file di testo quindi compreso gli a capo..
    prova quello che ha detto froz
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  6. #6
    se invece che un file .txt usi un file .php i \n ti mandano a capo, altrimenti, nel txt, i rettangolini che vedi vengono cmq interpretati dalle funzioni nl2br come degli a capo, ma il file risulta scritto tutto di seguito

    ciaùùùù
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  7. #7
    Scusate, forse non mi sono spiegata:
    allora, se uso nl2br (di cui apprendo solo ora l'esistenza e comunque è una cosa in più che ho imparato) sul file di testo mi viene scritto

    username1----password1
    []username2----password2
    []

    a me questo non serve, io voglio che sul file venga scritto

    username1----password1
    username2----password2

    E' impossibile da fare?
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  8. #8
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    infatti non c'entra niente, era come ti dicevo prima.

    con \r scriverà il testo a capo.
    se tu apri il file txt con notepad ti compariranno giustamente dei quadratini... ma prova a includere il txt nella pagina php... e noterai che andrà a capo.

    Questo non ti accontenta?
    E vuoi consultare il txt a uso pisssonale e non ti va di vedere quadratini, ma il testo che va a capo?
    Apri il txt con Wordpad di windows invece del notepad...
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  9. #9
    allora cominciamo:
    se tu nel file di testo hai una configurazione del genere:
    nome1
    nome2
    nome3
    nomeN
    il tutto è molto più semplice:
    codice:
    <?
    $root=$_SERVER['DOCUMENT_ROOT'];
    $percorso="$root\tuo_file.txt";
    $contenuto=file_get_contents($percorso);
    $riga=nl2br($contenuto);
    echo"$riga";
    ?>
    Se invece il file di testo è configurato in quest'altra maniera:
    nome1nome2nome3nomeN
    NON SI PUò DIVIDERE..DEVONO ESSERCI MINIMO DEGLI SPAZI TRA UN NOME E L'ALTRO...detto questo, andiamo avanti...
    il file quindi sarà configurato in quest'altro modo:

    nome1 nome2 nome3 nomeN
    il procedimento è un pò più complesso, ma niente di chè..
    in poche parole andiamo a dividere questi nomi per spazi , tramite la funzione explode :

    codice:
    <?
    //la tua root
    $root=$_SERVER['DOCUMENT_ROOT'];
    //root più tuo file.txt
    $percorso="$root\u.txt";
    //ricaviamo il contenuto
    $contenuto=file_get_contents($percorso);
    //dividiamo per spazi
    $riga=explode(" ",$contenuto);
    //la funzione explode caccia fuori un array e noi lo spulciamo con un ciclo for
    for($i=0;$i<count($riga);$i++){
    //infine visualizziamo
    echo"$riga[$i]
    ";
    
    ecco, questo è tutto.!se hai dei problemi o vuoi delle delucidazioni su qualche passaggio che non ti è chiaro...posta pure! :ciauz: 
    }
    ?>

  10. #10
    il caso in questione è il primo, ma lo hai analizzato nel modo inverso, non devo fare un'output a schermo del contenuto di un file, ma devo registrare su un file informazioni prese da un form in odo tale che ciascuna coppia di informazioni occupi una sola riga. ho un file che funziona da database per username e password per l'accesso ad una pagina. Ho la necessità che il file sia formattato con una coppia per riga e gli elementi della coppia separati da un divisore, diciamo che il divisore è "----" il file dovrebbe essere formattato nel modo seguente:

    username1----password1
    username2----password2
    username3----password3
    ecc.


    ovviamente prendo i dati da un form per cui:

    codice:
    $username = $_POST['username'];
    $password = $_POST['password'];
    $file = "databaseutenti.txt";
    // creo la stringa che occuperà una sola riga del mio file di testo
    $divisore = "----";
    $coppia_up = "$username$divisore$password\r";
    // scrivo su file la mia coppia
    $apri = fopen($file, "a+");
    fputs($apri, $coppia_up);
    fclose($apri);
    ma lo \r come ho già spiegato non basta a far andare a capo nel file, ma viene sostituito con un rettangolino [] e i dati vengono scritti di seguito sulla stessa riga...

    Possibile che non ci sia un modo, un'istruzione di php da legare a fputs che mi faccia andare a capo alla fine della scrittura?
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.