PHP prakticky/Další operace se soubory
Z Wikiknih
V PHP můžeme se soubory provádět tyto operace:
Obsah |
[editovat] Vypsání obsahu
Výsledek je podobný, jako při použití funkcí v kapitole Upravování souborů, ale s tím rozdílem, že soubor nemusíme zvlášť otevírat a zavírat. Nevýhodou je, že obsah souboru se rovnou vypíše a nemůžeme tedy s výsledkem dále pracovat...
readfile("soubor.txt");
[editovat] Odstranění souboru
Tato funkce jednoduše smaže soubor. Někdy nám v něm mohou zabránit nedostatečná oprávnění, například při vybrání souboru na cizím webu. V případě že soubor s původním názvem neexistuje, vypíše se chybová hláška.
unlink("soubor.txt");
[editovat] Přejmenování souboru
Funkce přejmenuje soubor. V případě že soubor s původním názvem neexistuje, vypíše se chybová hláška.
rename("puvodninazev.txt","novynazev.txt");
[editovat] Zkopírování souboru
Funkce zkopíruje soubor. Můžeme kopírovat mezi složkami, nebo i v rámci jedné složky. V tom případě ovšem musíme zadat jiný než původní název.
copy("puvodnisoubor.txt","slozka/novysoubor.txt");
[editovat] Výpis obsahu složky
Tento skript vypíše soubory a složky ze zadané složky. Parametrem je složka pro vypsání. (U složky nacházející se ve stejné složce jako vypisující skript stačí zadat název. Pro složku v níž je vypisující skript zadejte tečku a pro složku nadřazenou složce s vypisujícím souborem dvě tečky)
$slozka = opendir("."); // Tento skript vypíše obsah složky v níž je uložen
while ($soubor = readdir($slozka)){
echo $soubor."<br>";
}
[editovat] Zjištění atributů
Velikost souboru zjistí funkce filesize(): (Následující skript vypíše velikost souboru soubor.txt v Bytech)
$velikost=filesize("soubor.txt");
echo $velikost;
Datum vytvoření souboru zjistí funkce filectime(), ta ji však vrátí v počtu sekund, které uplynuly od počátku internetu. Toto číslo upravíme do čitelného formátu funkcí strftime().
$vytvoreno=filectime($soubor);
echo strftime("%d/%m/%Y %H:%M",$vytvoreno);
Datum změny souboru zjistí funkce filemtime(), ta ji však také vrátí v počtu sekund, které uplynuly od počátku internetu. Toto číslo musíme opět upravit do čitelného formátu funkcí strftime().
$zmeneno=filemtime($soubor);
echo strftime("%d/%m/%Y %H:%M",$zmeneno);
Funkce PHP pro práci se soubory bývají na webhostinzích omezeny na práci v daném adresáři pomocí konfigurační direktivy PHP open_basedir a na práci se soubory vlastněnými autorem skriptu direktivou safe_mode. Ty se často kombinují pro maximální zabezpečení serveru před jeho uživateli.
V některých případech je možné číst soubory z jiných serverů, například z adresy http://server/soubor.txt. Protože se ale jazyk PHP provádí na serveru, nemůže pracovat se soubory u klienta. Přenos souborů mezi serverem a návštěvníkem je přesto možný, viz. kapitola Upload a download