Visualizzazione risultati 1 fino 8 di 8

Discussione: Come strutturare/recuperare un flat file

  1. #1
    Guest

    Predefinito Come strutturare/recuperare un flat file

    Ciao sono nuovo nel forum...
    Volevo sapere come strutturare un flat file con qualcosa del genere
    Codice:
    id    name    group
    1     Amy     Blues
    2     Bob     Reds
    3     Chuck   Blues
    4     Dick    Blues
    5     Ethel   Reds
    6     Fred    Blues
    7     Gilly   Blues
    8     Hank    Reds
    Cioè non utilizzando un database sql non saprei come fare sia per strutturare e sia per recuperare il contenuto...
    Mi dareste una dritta?

  2. #2
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Potresti strutturare ogni riga come
    id | name | group
    ed usare le funzioni file, list, explode per ricavare i dati.


    -- Aut Roma Aut Nihil!

  3. #3
    Guest

    Predefinito

    Ho provato a fare come dici ma non sta funzionando tanto bene:
    Codice PHP:
    $db = file_get_contents("db.txt");
    $explode = explode("|",$db);
    list(
    $id, $name, $group) = $db;
    echo
    "Id : $id Nome: $name Gruppo: $group";
    db.txt contiene:
    Codice:
    1|kde|altervista
    E mi stampa solo questo: 1 |
    Ultima modifica di kde : 15-02-2009 alle ore 22.23.50

  4. #4
    Guest

    Predefinito

    Hai sbagliato il codice
    Codice PHP:
    $db = file_get_contents("db.txt");
    $explode = explode("|",$db);
    list(
    $id, $name, $group) = $explode;
    echo
    "Id : $id Nome: $name Gruppo: $group";

  5. #5
    Guest

    Predefinito

    Si me ne sono accorto comunque provando ho fatto così:
    Codice PHP:
    $db = "1-kde-altervista";
    list(
    $id, $name, $group) = $db;
    $dati= explode("-",$db);
    for(
    $i = 0; $i < 3; $i++) {
    echo
    $dati[$i];
    }
    Ma il codice di stoner va molto meglio!

    EDIT: Ma per aggiungere un altro id, name, group come faccio? Cioè li ho inseriti in db.txt ma non mi stampa nulla spero che sia sempre un mio errore
    Ultima modifica di kde : 15-02-2009 alle ore 22.33.28

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    se non ti interessa editare a mano il file del database, puoi usare anche serialize() e unserialize(), che trasformano qualsiasi cosa* in una stringa che può essere scritta e letta su file, anche se poco leggibile ad occhio

    Per salvare il tuo database su disco usi
    Codice PHP:
    if ($f=fopen('nomefile.txt','w'))
    {
    fwrite($f, serialize($variabile));
    fclose($f);
    }
    oppure in php5
    Codice PHP:
    file_put_contents('nomefile.txt', serialize($variabile));
    Per caricare invece
    Codice PHP:
    $variabile = unserialize(file_get_contents('nomefile.txt'));

    *a parte risorse, ovvero socket, link a database, handle a file - roba che non vuoi/puoi salvare se ci pensi. Oggetti ed array, array di array, array di array di array... funzionano senza problemi
    Ultima modifica di dreadnaut : 15-02-2009 alle ore 22.50.23

  7. #7
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Ritornando a kde il codice è questo:

    Codice PHP:
    $db = file("db.txt");
    foreach(
    $db as $riga) {
    list(
    $id, $name, $group) = split("|", $riga);
    echo
    "Id : $id Nome: $name Gruppo: $group";
    }

    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  8. #8
    Guest

    Predefinito

    @dreadnaut Grazie per il consiglio lo farò sicuramente!
    @foreach Non funziona neanche come dici tu, questo è il risultato
    Codice:
    Id : Nome: Gruppo: Id : Nome: Gruppo: Id : Nome: Gruppo:
    Comunque ho risolto così
    Codice PHP:
    <?php
    $db
    = file("db.txt");
    foreach(
    $db as $riga) {
    list(
    $id, $name, $group) = explode("|", $riga);
    echo
    "Id : $id Nome: $name Gruppo: $group";
    }
    ?>

Regole di scrittura

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