Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    57

    Estrarre i dati da un file txt e scrivere le parti in celle deverse

    Salve,
    ho la necessità di estrarre dei dati da un file TXT e poter estrapolare i singoli valori da utilizzare
    in una formattazione della mia pagina web.

    il file ha una sola riga con questi dati divisi da spazi.

    23/02/10 17.34.52 16.4 60 8.4 6.1 9.7 270 0.0 0.0 1004.0 ..............................

    1 spazio = data
    2 spazio = orario
    3 ecc ecc

    qualcuno mi può aiutare ?
    fornendomi una script.
    Grazie in anticipo

  2. #2
    dovresti usare le funzioni per leggere un file tipo fopen()
    e la funzione strtok() che spezza il file nelle varie parti (token) (separate da spazio in questo caso) vedi qui
    www.valarsoft.com (Free GNU/GPL softwares and games)

  3. #3
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    in una sola riga??bè allora prova così.....un po' spartano ma efficace
    es:
    <?php
    $percorso_file = ('c:\\test.txt'); //imposto percorso file
    $file = fopen($percorso_file,rb); //apro il file
    $riga = fread($file,1024); //leggo file
    $elimino_spazi = trim($riga); //elimino gli spazi bianchi...per contare meglio
    var_dump($elimino_spazi); //tiro giù un debug
    echo "</br>";
    echo substr($elimino_spazi,0,8)."</br>";//leggo la data
    echo substr($elimino_spazi,9,8)."</br>";//leggo l'ora
    etc..
    etc..
    fclose($file)
    //chiudo file
    ?>

    il resto lo continui te ))
    il codice l'ho testato sui valori che hai postato......ovvio che devono essere tutti sulla prima riga altrimenti il discorso è diverso.La funzione substr restituisce una porzione di stringa prendendo un inizio ed una fine (substr($elimino_spazi,0,8).

    spero di esserti stato utile.

    fammi sapere

  4. #4
    studia la funzione Explode, che penso faccia al caso tuo. Indichi qual è l'argomento per cui si vuole spezzare il testo, in questo caso magari gli spasi, e si creerà un array con ogni cella contenente i valori escluso quello che serve da "spezzatore".

    quindi nel caso di 10 20 30 creerà un array con 3 celle contenenti 10, 20, 30.

  5. #5
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    ecco in questo caso explode va più che bene,giusto simonsaint!...non ci avevo pensato

    rettifico il codice.....:

    <?php
    $percorso_file = ('c:\\test.txt'); //imposto percorso file
    $file = fopen($percorso_file,rb); //apro il file
    $riga = fread($file,1024); //leggo file
    $valore1 = esplode('',$riga)."</br>";elimino gli spazi vuoti....
    echo $valore1[0]."</br>";//stampo data
    echo $valore2[1]."</br>";//stampo ora
    etc..
    etc..
    fclose($file)
    //chiudo file
    ?>

    Cmq entrambi gli script sono validi.....quest'ultimo sicuramente più performante

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    57
    Ok
    il primo funziona ,
    mentre il secondo mi da un errore alla riga
    $valore1 = esplode('',$riga)."</br>";elimino gli spazi vuoti....

    adesso invece come faccio a prelevare il singolo valore
    es. echo substr($elimino_spazi,9,8)."</br>";//leggo l'ora

    e inserirlo in una tabella simile
    <table border="1" width="43%">
    <tr>
    <td width="33%">data</td>
    <td width="33%">ora</td>
    <td width="34%">titolo3</td>
    </tr>
    <tr>
    <td width="33%">val1</td>
    <td width="33%">val2</td>
    <td width="34%">val3</td>
    </tr>
    <tr>
    <td width="33%">titolo4</td>
    <td width="33%">titolo5</td>
    <td width="34%">titolo6</td>
    </tr>
    <tr>
    <td width="33%">val 4</td>
    <td width="33%">val5 </td>
    <td width="34%">ecc</td>
    </tr>
    </table

    Grazie in anticipo per l' aiuto.

  7. #7
    con explode è tutto molto semplice. Adesso non ho molto tempo e sarò molto veloce quindi:

    //taglio la parte dell'openfile txt già conosciuta (la chiamerò $file)

    $explode = explode (" ", $file);

    questo creerà un array $explode con N celle contenenti i valori del file txt.

    Quindi se il tuo file txt ha questi valori

    10/12/2008 12:20 24/11/2007 13:24

    avrai
    $explode[0] = 10/12/2008
    $explode[1] = 12:20
    $explode[2] = 24/11/2007
    $explode[3] = 13:24


    e così via. quindi saprai che se hai due tipi di valori, come in questo caso, tutti gli indici dispari saranno date e quelli pari dispari.

    Se i valori invece saranno 3, tipo data, ora, regione, non dovrai fare altro che prendere per le date tutti gli indici che partono da 0 e si sommano di 3 (0, 3, 6), gli orari di 1+3 (1, 4, 7) e regione 2+3 (2, 5, 8)...

    Spero di essere stato chiaro

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    57
    Ok ci sono riuscito ad estrapolare i dati grazie al vostro aiuto ,
    però adesso come si fa a creare una tabella con le relative celle come html e inserirvi i dati proveniente dagli
    $explode[0] ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    57
    va bene così lo script per fare le tabelle?
    echo "<table width=\"50%\" border=\"1\">\n"
    ."<tr>\n"
    ." <td>";
    print ("Data");
    echo" </td>\n"

    ." <td>";
    print ("Ora");//stampo data
    echo" </td>\n"

    ." <td>";
    print ("valore 1");//stampo data
    echo" </td>\n"

    ."</tr>\n"

    ."<tr>\n"
    ." <td>";
    print ("$explode[0]");
    echo" </td>\n"

    ." <td>";
    print ("$explode[1]");//stampo data
    echo" </td>\n"

    ." <td>";
    print ("$explode[2]");
    echo" </td>\n"

    ."</tr>\n"

    ."</table>\n";

  10. #10
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    Originariamente inviato da raimaker
    Ok ci sono riuscito ad estrapolare i dati grazie al vostro aiuto ,
    però adesso come si fa a creare una tabella con le relative celle come html e inserirvi i dati proveniente dagli
    $explode[0] ?
    tipo una cosa del genere?

    <?php
    $percorso_file = ('c:\\test.txt');
    $file = fopen($percorso_file,rb);
    $riga = fread($file,1024);
    $valore1 = explode(" ",$riga);
    fclose($file);
    ?>
    <table border="1" width="43%">
    <tr>
    <td width="33%">data</td>
    <td width="33%">ora</td>
    <td width="34%"> titolo3</td>
    </tr>
    <tr>
    <td width="33%"><?php echo $valore1[0]?></td>
    <td width="33%"><?php echo $valore1[1]?></td>
    <td width="34%"><?php echo $valore1[2]?></td>
    </tr>
    </table>

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.