110 likes | 229 Views
Práce se soubory. Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. Pokud chcete zapisovat do souboru, musíte: Otevřít soubor - pokud neexistuje, tak ho vytvořit Zapsat do souboru Zavřít soubor. Otevření souboru.
E N D
Práce se soubory • Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. • Pokud chcete zapisovat do souboru, musíte: • Otevřít soubor - pokud neexistuje, tak ho vytvořit • Zapsat do souboru • Zavřít soubor
Otevření souboru • K otevření souboru použijeme funkci fopen(název_souboru, mód) Příklad: $fp= fopen("text.txt", "w"); Módy: r čtení od začátku r+ čtení a zápis od začátku w zápis (pokud soubor existuje, smaže se jeho obsah) w+ zápis a čtení od začátku a doplňování (zápis) od konce a+ doplňování a čtení od konce
Přečtení souboru readfile ("text.txt"); Tento příkaz soubor otevře a jeho obsah vypíše na standardní výstup. Pokud soubor nebude existovat, vydá PHP varovné hlášení: Warning: readfile(text.txt) [function.readfile]: failed to open stream: .....
Čtení ze souboru po řádcích fgets() - přečte vždy jeden řádek, dokud nenarazí na znak nové řádky <? $fp = fopen ("text.txt", "r"); $cti = fgets ($fp); echo$cti; fclose ($fp); //uzavření souboru ?>
Čtení ze souboru po řádcíchvýpis všech řádků <? $fp = fopen ("text.txt", "r"); while ($fp) { $cti = fgets ($fp); echo$cti; } fclose ($fp); ?> Tato konstrukce zahlásí chybu, protože není určeno, kdy má čtení skončit.
Kdy zastavit čtení feof() - Vrátí true, pokud ukazatel ukazuje na konec souboru (FileEnd OF File) <? $fp = fopen ("text.txt", "r"); while (!feof($fp)) { $cti = fgets ($fp); echo$cti."<br />"; } fclose ($fp); ?>
Zápis do souboru fwrite (jméno_souboru,"text") <? $fp = fopen ("text.txt", "a+"); fwrite ($fp, "Hedvika"."\n"); fclose ($fp); $fp = fopen ("text.txt", "r"); while (!feof($fp)) { $cti = fgets ($fp); echo$cti."<br />"; } fclose ($fp); ?>
Pohyb uvnitř souboru rewind() - nastaví pozici ukazatele na začátek souboru ftell() - oznámí, jak daleko se ukazatel dostal v souboru (v bytech) fseek() - nastaví ukazatel na libovolné místo v souboru (v bytech)
Smazání souboru unlink("jméno_souboru") Příklad: <? unlink ("text.txt"); ?> • Tento program vymaže soubor text.txt
Otázky k opakování • Jaké činnosti musíte provést, pokud chcete něco zapsat do souboru? • K jakému účelu se používá funkce fopen? • Jaké znáte módy používané při otevírání souboru? • K jakému účelu se používá funkce readfile? • Kolik řádků textu přečte funkce fgets? • K jakému účelu se používá funkce fwrite? • K jakému účelu se používá funkce unlink?
Použité zdroje • BLÁBOLIL, R. Informační a komunikační technologie. 3. rozšířené vydání. České Budějovice: KOPP, 2011. str. 407 Použité obrázky: • Vlastní