V současné době se pro práci s větším množstvím dat většinou využívají databáze (pokud se k nim dostaneme a zvládneme je :-) ), při malém množství dat by ale databáze byly nadbytečné a většinou postačí uložení dat do souboru. Dočasné uložení dat do souboru můžeme také využít při práci s rozsáhlou databází, aby se nemusel vícenásobně generovat stejný nebo podobný výstup z databáze. Pamatujte na to, že pro vytvoření souboru nebo zápisu do něj musíme mít příslušná práva, což by u webhostingů nemuselo platit!
V následujících příkazech bude potřeba znát název souboru, se kterým se pracuje, je možné uvádět konkrétní název (i s příponou v uvozovkách), případně i s cestou nebo URL. Výhodnější je uložit název souboru do proměnné, protože se ve scriptu bude vyskytovat vícekrát a při opravě se opraví jen hodnota proměnné, místo oprav všech výskytů názvů ve skriptu. Navíc často je název nějakým způsobem ve skriptu generovaný, to už by bez proměnné prakticky nešlo.
U uvedených příkladů příkazů se tedy předpokládá nejprve určení hodnoty proměnné použité pro název souboru, například:
$filename="pokus.dat";
file_exists($filename) - ověření existence souboru daného názvu, výsledkem je true nebo false
Pro čtení nebo zápis do souboru je potřeba nejprve vytvořit tzv. ukazatel (neboli deskriptor či popisovač) na konkrétní soubor, ten lze vytvořit jen při otevření souboru funkcí fopen (vrací false pokud soubor nebyl otevřen), například:
$fp=FOpen($filename,"r+"); - otevření souboru s daným názvem a režimem a zároveň vytvoření ukazatele $fp.
Režimů pro otevření souboru je šest (r, r+, w, w+, a, a+ - zkratky slov read, write, append) liší se vlastnostmi podle přehledu:
režim | čtení | zápis | obsah |
"r" | ano | ne | zachová |
"r+" | ano | ano | zachová |
"w" | ne | ano | vymaže (vytváří nový soubor) |
"w+" | ano | ano | vymaže |
"a" | ne | ano | zachová (připisuje na konec) |
"a+" | ano | ano | zachová |
Jednoduché počítadlo přístupů na stránku může být právě jeden z případů, kdy by byly databáze nadbytečné, protože budeme ukládat a číst jediné číslo.
Protože je script poměrně jednoduchý, spolehnu se na to, že vám k vysvětlení budou stačit komentáře v jeho zdroji (samozřejmě s pochopením výše uvedených příkazů):
<?php
$filename="pokus.dat";
if (file_exists($filename)): //jestliže existuje soubor pokus.dat
$fp=fopen($filename,"r+"); //otevři soubor pro čtení i zápis
$hits=FRead($fp,filesize($filename))+1; //do proměnné $hits načti obsah souboru zvětšený o 1
Rewind($fp); //skoč na začátek souboru
else: //jinak (neexistuje soubor pokus.dat)
$fp=FOpen($filename,"w"); //vytvoř nový soubor
$hits=1; //do proměnné $hits vlož 1
endif; //protože jsme místo složených závorek použili dvojtečku, musíme uvést endif
Fwrite($fp,$hits); //zapiš hodnotu proměnné $hits do souboru
FClose($fp); //zavři soubor
echo $hits; //vypiš hodnotu proměnné
?>
Vlož na svůj index počítadlo přístupů podle lekce. Uprav jeho vzhled, například aby byl počet vepsaný v obdélníku s vybranou barvou pozadí, případně rámečkem.
Název školy: | Základní škola, Hradec Králové, M. Horákové 258 |
Název projektu: | EU peníze školám |
Číslo projektu: | CZ.1.07/1.4.00/21.2575 |
Téma: | Programování v PHP |
Název: | VY_32_INOVACE_11_10A_PHP11 |
Autor: | Pavel Petr |