Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";")) { $pages[$num] = $data; $num++; } Plik csv ma w tym przypadku postać: tekst; tekst2; tekst3; ... Widać tutaj analogie do polecenia SELECT * FROM nazwa OUTFILE ..... używanego w SQL do wyprowadzenia zawartości tabeli do pliku.
Do czego może przydać się plik csv? 1. Przechowywanie informacji w ‘pseudo’ bazie danych zalety: - nie potrzebna baza danych wady: - mała skuteczność działania - skomplikowana obsługa 2. Tworzenie stron o elastycznej strukturze Rozwijając temat 2: Załóżmy, że chcemy utworzyć np.. katalog wyrobów elektronicznych, który ma wyglądać jak obok. Można wyróżnić pewne stałe elementy jak menu, nagłówek oraz kartę towaru zawierającą tekst itp.. Jedną z metod utworzenia takiego katalogu i jego łatwej modyfikacji jest zapisanie struktury serwisu w bazie danych lub pliku csv. nagłówek menu Nazwa towaru jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst <<poprzedni następny>>
Szkielet serwisu Szkielet serwisu można utworzyć na bazie tabeli w sposób następujący: index.php / pomijam tutaj część <HEAD></HEAD> / <HTML> <BODY> <TABLE BORDER=0> <TR><TD COLSPAN=2><?php include(‘naglowek.html’); ?></TD></TR> <TR> <TD><?php include(‘menu.html’); ?></TD> <TD><?php include(‘katalog.php’); ?></TD> </TR> </TABLE> </BODY> </HTML> w pliku katalog.php będzie znajdować się cały ‘engine’ serwisu.
Przełożenie struktury na plik utwórzmy plik katalog.csv o następującej zawartości: numer; nazwa pliku zawierającego kartę towaru np.. 0; towar1.html 1; towar2.html .... pliki towar1.html, towar2.html i kolejne są fragmentami, które mają znaleźć się w polu <TD></TD> tabeli utworzonej w index.php.
Serce serwisu Sercem serwisu jest kod, który odczytuje zawartość pliku katalog.csv i generuje odpowiedni kod HTML. Całą operacje można podzielić na dwa etapy: 1. Odczytanie i odnalezienie odpowiedniego wpisu w pliku. Numer karty, która będzie wyświetlana będzie przekazywany za pomocą Query np.: index.php?karta=1. Brak zmiennej karta uznamy, za żądanie wyświetlenia pierwszej karty katalogu. 2. Wygenerowanie odpowiedniego kodu oraz linków do kolejnych kart katalogu. Wszystko to robi poniższy kod, który zapisujemy w katalog.php: if (!isset($numer)) { $numer=0; $fp = fopen („katalog.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";")) { $pages[$num] = $data; $num++; } $file = $pages[$numer][1]; include($file); if ($numer > 1) { numer_p=numer-1; print("<A HREF="\"index.php?numer=".$numer_p."\">poprzedni</A>"; } if ($numer < num-1) { numer_n=numer+1; print("<A HREF="\"index.php?numer=".$numer_n."\">następny</A>";