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

    leggere la prima e la seconda riga di un file di testo

    Ciao a tutti!

    Mi trovo nella necessità di modificare uno script preesistente per la lettura di dati da un file di testo delimitato da tabulazione.. Premetto che non ne so molto di lettura/scrittura su file di testo in php...

    Lo script è il seguente
    Codice PHP:
    if (isset($_GET['file'])) {
    $file = trim($_GET['file']);
    } else {
    echo "Nessun file da caricare!";
    exit;
    }

    [...]
    <?php 
    $fd 
    fopen($file,"r");
    while (
    $data=fgetcsv($fd,1000,"\t")):
    ?>
            <tr>
                <td><?=$data[0]?></td>
                <td><?=$data[1]?></td>
                <td><?=$data[2]?></td>
                <td><?=$data[3]?></td>
                <td><?=$data[4]?></td>
                <td><?=$data[5]?></td>
                <td><?=$data[6]?></td>
                <td><?=$data[7]?></td>
            </tr>

    <?php
    endwhile;
    fclose($fd);
    ?>
    [...]
    Il problema è che io vorrei diversificare le prime due righe del file di testo, che contengono le intestazioni della tabella. Come potrei fare a bloccare la lettura del file per le prime due righe e poi riprendere le seguenti?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Codice PHP:
    <?php
    $fd 
    fopen($file,"r");
    $i 0;
    while (
    $data=fgetcsv($fd,1000,"\t")) {
      if (
    $i == || $i == 1) {?>
      //Scrivi gli header della tabella
    <?php
      
    }
      else {
    ?>
            <tr>
                <td><?=$data[0]?></td>
                <td><?=$data[1]?></td>
                <td><?=$data[2]?></td>
                <td><?=$data[3]?></td>
                <td><?=$data[4]?></td>
                <td><?=$data[5]?></td>
                <td><?=$data[6]?></td>
                <td><?=$data[7]?></td>
            </tr>

    <?php
      
    }
      
    $i++;
    }
    fclose($fd);
    ?>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    ciao andrea!!!

    quindi qui

    if ($i == 0 || $i == 1) {?>
    //Scrivi gli header della tabella
    <?php


    potrei scrivere

    if ($i == 0 || $i == 1) {?>
    <td class="firstrow"><?=$data[0]?></td>
    <td class="firstrow"><?=$data[1]?></td>
    <td class="firstrow"><?=$data[2]?></td>
    <td class="firstrow"><?=$data[3]?></td>
    <td class="firstrow"><?=$data[4]?></td>
    <td class="firstrow"><?=$data[5]?></td>
    <td class="firstrow"><?=$data[6]?></td>
    <td class="firstrow"><?=$data[7]?></td>
    <?php


    ???

    e se io inoltre volessi stampare tanti td quante sono le tabulazioni nel file di testo? dovrei fare un ciclo for suppongo, ma come?

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    perchè non provi la funzione file ?

    Ti mette le linee in un array.

    Poi chiamando array_shift N volte estrai le prime N righe.

    Una volta fatto questo puoi fare tanti cicli quanto è la lunghezza dell'array (che si sarà accorciato degli elementi estratti) per stampare le altre linee.

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    intendevo dire che la struttura sarebbe stata pressoché identitca. Puoi anche usare

    <tr>
    <th>Header</th>
    <th>Header</th>
    <th>Header</th>
    <th>Header</th>
    <th>Header</th>
    </tr>

    lì dove non ho completato l'if
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.