| Výuka > Úvod do PHP > Generování tabulky z CSV souboru |

Generování tabulky z CSV souboru - příklad

Nyní nás již čeká zmiňovaný příklad. Úkolem bude vygenerovat HTML tabulku z dat, která jsou uložena v CSV souboru. CSV soubor je obyčejný textový soubor, obsahující data oddělená středníky - viz ukázka:

1999;2000;2001;2002;2003
1255000;2000000;2120000;2200000;3252000
9124000;8599000;6002000;6874000;9999000

Při zpracování takovéhoto souboru budeme muset brát v úvahu, že na konci každého řádku jsou tzv. netisknutelné znaky (konec řádku), které budeme chtít při zpracování do tabulky odstranit.

Tabulku budeme sestavovat po jednotlivých řádcích tzn., že po přečtení a zpracování prvního řádku se bude pokračovat na dalším řádku a to celé se bude opakovat, dokud uvnitř CSV souboru nenarazíme na jeho konec.

Dále budeme předpokládat, že počet středníků v jednotlivých řádcích je totožný (tento předpoklad bývá většinou splněn).

Při práci s CSV souborem budeme pro jistotu testovat, zda je soubor dostupný a zda je s ním možno pracovat. Více již v následující ukázce:

<?php
 # test na práci se souborem
 $fp=fopen("data.csv", "r+");
 if (!$fp) {
  echo "<p>Nemohu pracovat se souborem.\n";
  exit;
 }

 # začátek tabulky
 echo ("\n<table border=\"1\">\n");
 while (!feof($fp))
  {
   echo (" <tr>\n  <td>");
   # přečtení řádku ze souboru
   $radek = fgets($fp);
   # odříznutí netisk. znaků na konci řádku
   $radek = chop($radek);
   # rozděl. dat do tabulky (nahrazení středníků)
   $radecek=ereg_replace(";",
             "</td>\n  <td>",$radek);
   # vypsání řádku
   echo $radecek;
   echo ("</td>\n </tr>\n");
  }
 # konec tabulky
 echo ("</table>");
 fclose($fp);
?>

31.08.2007, 13:40 vytvořil Administrator