Obsługa plików csv
description
Transcript of Obsługa plików csv
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 wyprowadzeniazawartoś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
men
u
Nazwa towarujakiś tekst jakiś tekst jakiś tekst jakiś tekstjakiś 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 jakiś tekst jakiś tekst jakiś tekst jakiś tekstjakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekst jakiś tekstjakiś 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>";
}