Visualizzazione risultati 1 fino 8 di 8

Discussione: [php/txt] gestire dati txt

  1. #1
    Guest

    Predefinito [php/txt] gestire dati txt

    Ciao !
    Avrei bisogno di sapere come :

    -cancellare una riga determinata di un file di testo ;
    -eseguire un "replace" della riga selezionata ;
    -spostare una riga di una riga sotto o sopra ;
    -trovare in corrispondenza ad un valore il numero della riga a cui appartiene :)

    Esempio dell'ultimo:
    il mio file txt contiene 2 righe :
    1|Ciao|oggi va meglio|120:02
    256|Niol|Oggi va male|002:53
    Come faccio a sapere che 1 è nella riga prima e 256 nella riga seconda ?(stessa cosa per ciao e niol eccetera)

    Grazie a tutti ^__^

  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

    Puoi utilizzare la funzione file per aprire il file e metterlo in un array. Lo scorri tramite un ciclo for. Per vedere gli elementi delimitati dal pipe (|) puoi utilizzare la funzione explode.
    Per poter cancellare, sostituire e modificare righe del file, devi cancellare, sostituire e modificare elementi dell'array che hai prodotto con la funzione file e riscrivere tutto l'array sul 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

    Quindi dovrei estrarre tutto , cancellare tutto il file e sostituirlo ? (per ora son capace fino a qui :P)
    Non è possibile agire su una riga definita ?
    Grazie ^_^

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

    Predefinito

    Per agire su una riga definita devi modificare l'array che hai estratto dal file e riscrivere tutto il 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

  5. #5
    Guest

    Predefinito

    Uhm .... mi potresti fare un piccolo esempio con 2 righe di script ^_^ ?
    Thanks.

  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

    Mettiamo che voglio modificare tutte le righe che hanno "256" come primo valore dandogli "Pippo" come secondo valore:
    Codice PHP:
    $file=file("nomefile.txt");
    for(
    $i=0;$i<count($file);$i++) {
    $file[$i]=explode("|",trim($file[$i]));
    if (
    $file[$i][0]=="256")
    $file[$i][1]="Pippo";
    }
    $fp=fopen("nomefile.txt","w");
    for(
    $i=0;$i<count($file);$i++) {
    $file[$i]=implode("|",$file[$i]);
    fwrite($fp,$file[$i]."\n");
    }
    fclose($fp);
    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

  7. #7
    Guest

    Predefinito

    Scusate se riapro la discussione dopo anni.
    Se io ho un file del genere:

    Codice PHP:
    <?php
    $db
    = "public/data.txt"; // in questo file verranno salvati i dati.

    $fp = fopen($db, "a+");
    fwrite($fp, $_POST["element_1"] . " | " . $_POST["element_8"] . " | " . $_POST["element_2"] . " |
    "
    . $_POST["element_2_1"] . " | " . $_POST["element_2_2"] . " | " . $_POST["element_2_3"] . " |
    "
    . $_POST["element_3"] . " | " . $_POST["element_3_1"] . " | " . $_POST["element_3_2"] . " |
    "
    . $_POST["element_4"] . " | " . $_POST["element_5"] . " | " . $_POST["element_6"] . " |
    "
    . $_POST["element_7"]); // salvo i dati nel file
    fclose($fp);
    foreach(
    file("public/data.txt") as $f) {
    echo
    $f . "<br />";
    }
    ?>
    Se volessi applicare una cosa tipo mostra titolo in grasseto centrato in una pagina (element_1), poi saltare due righe e scrivere il testo (element_2), come potrei fare?
    Grazie in anticipo!

  8. #8
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Hai già una discussione qui: http://forum.it.altervista.org/php-m...tml#post692840
    Qui chiudo!

Regole di scrittura

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