Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Estrarre campi file txt

    Ciao a tutti io hò un file txt, ogni riga corrisponde a un record e ogni campo e separato da un pipe.

    Hò già il seguente codice che mi stampa a video tutto il file

    <?PHP
    $nome_file = "file1.txt";
    $var= file_exists($nome_file);
    if ($var==true) {

    $var=@fopen($nome_file,"r");
    $leggi=fread($var,filesize($nome_file));
    $sss=nl2br($leggi);
    fclose($var);
    echo $sss;

    } else {
    echo "Spiacente ma il file non esiste";
    }

    Io invece volevo far stampare solo il 1°,2°,3°,4°,8° e 28° campo di determinati record che gli passo io da un altro file di testo.

    Il primo file (file1.txt) è formattato così:

    101|17|"AGLIARDI Federico"|"PALERMO"|1|0|1|4|0|1|6|0|2|0|0|0|0|0|0| 0|0|0|0|1|1|0|0|1
    102|17|"AMELIA Marco"|"LIVORNO"|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 |0|0|0|0|0|0|13
    103|17|"ARESTI Simone"|"CAGLIARI"|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 |0|0|0|0|0|0|1|1
    104|17|"AVRAMOV Vlada"|"FIORENTINA"|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 0|0|0|0|0|0|0|0|1
    105|17|"BALLI Daniele"|"EMPOLI"|1|0|1|4.5|0|1|6.5|0|2|0|0|0|0|0| 0|0|0|0|0|1|1|0|1|10
    106|17|"BALLOTTA Marco"|"LAZIO"|1|0|1|4|0|1|6|0|2|0|0|0|0|0|0|1|0|0 |0|1|1|0|1|8
    107|17|"BARASSO Nicola"|"GENOA"|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 0|0|0|0|0|0|1
    ...

    Il secondo (file2.txt) é così:

    102|AMELIA
    105|BALLI
    107|BARASSO
    ....

    Grazie mille e buon Natale a tutti.

  2. #2
    Beh.... se non fai l'explode delle righe, non riuscirami mai a fare quello che devi fare te.

    Codice PHP:
    <?php
    $nome_file 
    "file1.txt";
    if (
    file_exists($nome_file)) {

    $var=@fopen($nome_file,"r");
    $leggi=fread($var,filesize($nome_file));

    // ti crei un arrai in cui, per ogni riga, ne hai una 
    // prelevata dal tuo file di testo
    // EXPLODE effettuato con i caratteri tipici del A-Capo
    // ma se ne hai uno particolare, allora metti quello
    $array_righe explode("\r\n"$leggi); 

    // conti quante righe ci sono nell'array
    $conta_righe count($array_righe);

    echo 
    "<ul>";
    // cicli per leggere ogni singolo rigo
    for ($i 0$i <= $conta_righe$i++) {

    $array_contenuto_rigo explode("|"$array_righe[$i]);

    echo 
    "[*]
    Rigo 
    $i ::: $array_contenuto_rigo[1] -  $array_contenuto_rigo[2] - $array_contenuto_rigo[3] - $array_contenuto_rigo[4] - $array_contenuto_rigo[8] - $array_contenuto_rigo[28]

    "
    ;

    }
    echo 
    "[/list]";

    fclose($var);
    } else {
    echo 
    "Spiacente ma il file non esiste";
    }
    ?>
    Non l'ho provato, ma dovrebbe funzionare.
    A prescindere, spero tu abbia capito come funziona il tutto, così riesci a metterci mano anche da solo.

    Ad ogni modo, fossi in te, penserei seriamente di fare tutto questo con un DB: lo script sarebbe più pulito e la performance migliore.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Io sono riuscito in un altro modo

    <?PHP
    $nome_file = "MCC17.txt";
    $fp= file_exists($nome_file);
    if ($fp==true) {


    // apriamo il file di rubrica
    $fp = @fopen($nome_file, "r");

    // immettiamo tutti i dati del file in un array
    $records = file($nome_file);
    echo $records;
    // contiamo gli elementi dell'array totale
    $numero = count($records);
    echo "<table border=\"1\" align=\"center\" style=\"text-align:center\">";
    echo "<tr><td>Codice</td><td>N° Giornata</td><td>Nome giocatore</td><td>Squadra</td><td>Voto Magic Cup</td><td>Costo</td>";
    // scorriamo l'array
    for($x = 0; $x < $numero; ++$x)
    {
    // togliamo il carattere \n
    $records[$x] = trim($records[$x]);

    // immettiamo i dati del singolo record in un array
    $dati = explode('|', $records[$x]);
    // assegniamo a delle variabili i valori dell'array
    list( $codice_giocatore, $giornata, $nome_giocatore, $squadra, , , ,$voto , , , , , , , , , , , , , , , , , , , , $costo) = $dati;
    // stampiamo i risultati a video
    if ($x % 2 == 0 )
    echo "<tr bgcolor=\"#DDDDDD\"><td>$codice_giocatore</td><td>$giornata</td><td>$nome_giocatore</td><td>$squadra</td><td>$voto</td><td>$costo</td>";
    else
    echo "<tr><td>$codice_giocatore</td><td>$giornata</td><td>$nome_giocatore</td><td>$squadra</td><td>$voto</td><td>$costo</td>";
    }
    echo "</tr></table>";

    // chiudiamo il file
    fclose($fp);



    } else {
    echo "Spiacente ma il file non esiste";
    }
    ?>

    Comunque la tua soluzione è la migliore.

    Mi piacerebbe usare un database!!!!

    Però non sono pratico

    Grazie mille

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.