Obsługa plików csv

advertisement
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:
nagłówek
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.
menu
Nazwa towaru
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
jakiś
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 jakiś
tekst
tekst
tekst
tekst
tekst
tekst
tekst
tekst
tekst
tekst
tekst jakiś
tekst jakiś
tekst jakiś
tekst jakiś
tekst jakiś
tekst jakiś
tekst jakiś
tekst
tekst
tekst
tekst
tekst
tekst
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>";
}
Download