Práce se soubory
Soubory slouží k uchování dat, můžeme je vytvářet, mazat, kopírovat, načítat atd.
Příkazy pro načtení skriptů - require, include a include_once
Při rutinní tvorbě stránek pomocí skriptů se velice často setkáme s potřebou na- čítání jiných skriptů či částí stránek. Načítané soubory mohou obsahovat předde- finované funkce, které používáme na více stránkách, nebo třeba standardizované hlavičky a patičky stránek.
Příkaz require slouží k načtení skriptu ze souboru. Načítaný skript se vloží v místě použití příkazu. Provedou se všechny jeho příkazy a poté se v provádění pokračuje příkazem uvedeným za require. Tento příkaz se provede pouze jednou. Pokud bychom ho volali v cyklu a chtěli načíst soubor vícekrát, načte se soubor pouze při prvním průchodu cyklem.
Pro opakované čtení souborů je potřeba využít příkaz Include.
Include_once načtení souboru pouze jednou
Změna přístupových práv souboru
Pokud PHP skripty, které mění obsah některých souborů nepracují správně, je to často způsobeno špatným nastavením přístupových práv souboru. Atributy lze změnit pomocí Total Commanderu, Farmanageru., PSpadu…
Otevření souboru $soubor=fopen("cesta/jmeno_souboru", "režim")
Režim | Popis |
a | Otevře soubor pro přidání, pokud soubor neexistuje PHP jej vytvoří |
a+ | Otevře soubor pro přidávání a čtení, pokud soubor neexistuje PHP jej vytvoří |
r | Otevře soubor pouze pro čtení |
r+ | Otevře soubor pro čtení a zápis |
w | Otevře soubor pro zápis, původní data budou ztracena. Pokud soubor neexistuje PHP jej vytvoří |
w+ | Otevře soubor pro zápis a čtení, původní data budou ztracena, pokud soubor neexistuje PHP jej vytvoří |
Funkce fclose($soubor) zavírá soubor.
Čtení dat ze souboru:
Metoda fread() přečte ze souboru prvních N znaků. Obvykle je třeba načíst celý soubor, je tedy nutné zjistit počet jeho znaků. To lze pomocí metody filesize($soubor), která vrátí počet znaků vybraného souboru.
<?php $soubor = fopen("soubor.txt", "r"); //otevření souboru $text = fread($soubor, N); //přečtení N znaků ze souboru echo($text); fclose($soubor); ?>
Metoda fgets čte soubor jeden řádek po druhém. Funkce explode rozebere řetězec na jednotlivé elementy podle daného znaku, např. |. Elementy lze okamžitě přiřadit do separátních proměnných, které jsou definovány v závorkách funkce list():
<?php $f=fopen("stud.txt","r"); while(($data = fgets($f))!=NULL) { list( $jmeno, $prijmeni, $vek, $mesto, $psc)=explode("|", $data); } ?>
Readfile (‘cesta/jmeno_souboru’) zobrazí obsah celého souboru
Uložení souboru
Pomocí metody fwrite(id_souboru, "text") zapíšeme text na konec vybraného souboru:
<?php $text = "cokoli, co chcete uložit do souboru"; $soubor = fopen("soubor.txt", "a+"); fwrite($soubor, $text); //fputs($soubor, $text); fclose($soubor); ?>
Pokud soubor neexistuje, je vytvořen .(pozor na práva pro zápis)
Odstranění
Pro odstranění souboru se užívá metoda unlink(název souboru)