PHP – práce se soubory

php-logo[1]

Dnes, když umíme podmínky, proměnné atd. si ukážeme jak pomocí PHP pracovat se soubory.

Kontrola existence souboru

Pokud budeme se souborem manipulovat, měli bychom nejprve zjistit, zda soubor existuje.
<?php
$soubor = "slozka/nazev_souboru.pripona";
if(!file_exists($soubor)) {
echo "Soubor neexistuje";
}
?>

Vysvětlovat začnu odshora, takže: do proměnné soubor jsme uložili cestu k souboru, včetně přípony…Nyní k podmínce. Pro kontrolu podmínky jsme použili funkci file_exists, před kterou jsme dali vykřičník, čímž jsme vlastně obrátili hodnotu funkce. Tudíž, pokud by nám funkce file_exists vyhodila hodnotu 1, po použití vykřičníku by to bylo 0… Samotná funkce file_exists kontroluje, zda soubor existuje. Má jeden parametr a sice název souboru, jehož existenci kontrolujeme. Pokud je soubor v jiné složce, tak k němu musí být uveden také cesta…

Manipulace se soubory a jejich obsahem

Nyní, když máme existenci souboru jistou, můžeme se souborem manipulovat, měnit jeho obsah… Abychom mohli změnit obsah souboru, musíme si jej prvni „otevřít“, a to funkcí fopen.
fopen(soubor, režim)

Výše jsem napsal zápis funkce fopen a její parametry. Je jich samozřejmě více, ale tyhle budete používat nejčastěji. Parametr soubor je pravděpodobně jasný. Opět vložíte název souboru, popř. adresu k němu. Parametr režim nám udává, v jakém režimu budeme se souborem manipulovat. Rozlišujeme tyto režimy:

r otevření souboru pouze pro čtení; pokud soubor neexistuje, dojde k chybě
r+ otevření souboru pro čtení; je možné do souboru také zapisovat; dojde k chybě, pokud soubor neexistuje
w otevření soubor pro zápis; pokud soubor neexistuje, je vytvořen; existuje-li, je jeho obsah nejdříve smazán
w+ otevření souboru pro zápis, přičemž je možno z něj i číst; neexistující soubor je vytvořen, pokud již soubor existuje, je smazán
a otevření souboru pro zápis za konec souboru (existující soubor není smazán); pokud soubor neexistuje, PHP se jej pokusí vytvořit
a+ otevření souboru pro zápis za konec souboru, přičemž je možno z něj i číst; pokud soubor neexistuje, pokusí se jej PHP vytvořit

Takže tohle byly režimy otevření souboru. Příklad zápisu funkce fopen:
$fp = fopen ("dokumenty/text.txt", "w+");

Proč jsem hodnotu funkce fopen uložil do proměnné? K tomu se dostanu níže. Nyní ještě k výše zmíněnému zápisu – takže funkcí fopen otevíráme soubor text.txt, který je ve složce dokumenty, která je ve stejné složce jako náš php soubor. Dále jako parametr funkce následuje w+, tudíž se soubor otevře, budu z něj moct číst a budu do něj moct také zapisovat… pokud soubor neexistuje, je vytvořen, pokud existuje, je smazán.

Zisk dat ze souboru

Pro zisk dat ze souboru se často užívá funkce fread, u které opět zmíním 2 parametry. První je jako vždy odkaz na samotný soubor, druhý udává, kolik dat se má ze souboru přečíst – např. 4kb, 1024b,…. zápis funkce fread:
fread (soubor, velikost)
Zápis snad není potřeba komentovat, jen pro jistotu – velikost = velikost části, kterou chceme číst. Pokud chcete zajistit, aby se soubor přečetl celý, můžeme jako parametr velikost uvést toto: filesize(soubor) – funkce filesize nám zjistí velikost souboru, takže vlastně zjistíme celkovou veliksot souboru, který čteme a tuto hodnotu pak vložíme do paramteru funkce fread. Příklad funkce fread:
<?php
$soubor = "text.txt";
$fp = fopen($soubor, "a");
$text = fread($fp, filesize($soubor));
echo $text;
?>

Takže, co tenhle kód dělá? Jako první si definujem proměnnou soubor, do které vložíme název, popř. cestu k souboru. Dále si do proměnné fp uložíme hodnotu funkce fopen, pomocí které jsme si otevřeli soubor. Nyní voláme funkce fread, jejíž hodnotu si uložíme do proměnné text a tu pak následně vypíšeme. Myslím, že s tímto problém nebude a proto se přesuneme k zápisu dat do souboru.

Zápis dat do souboru

V PHP nemusíme ze souborů jen číst, ale můžeme do nich také vkládat obsah, a to většinou pomocí funkce fwrite. Jak už jistě tušíte, její 2 nejdůležitější parametry jsou soubor, do kterého budeme zapisovat a poté řetězec, který budeme zapisovat. Všechny funkce jsou obdobné a proto už jen funkci uvede na příkladu.
<?php
$soubor = "text.txt";
$fp = fopen($soubor, "a");
$text = "Ahoj, toto je pokusný text, který bude vložen do souboru text.txt";
fwrite ($fp, $text);
?>

Opět, do proměnné soubor jsme si definovali soubor, do nějž budeme vkládat řetězec, poté jsme jej otevřeli, definovali si proměnnou text, ve které je uložen text, který chceme vložit a nakonec zavolali funkci fwrite, která řetězec do souboru vložila.

Uzavření souboru

Když do souboru zapíšeme data, nebo z něj vydolujeme to, co potřebujeme, je dobré soubor zavřít funkcí fclose. Příklad:
<?php
$soubor = "text.txt";
$fp = fopen ($soubor, "a");
//úkony, které chceme se souborem provádět
fclose($fp);
?>

Takže, to by bylo k souborům a práci s nimi pomocí PHP vše. Pokud máte dotazy, piště je do komentářů pod článek.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>