![]() |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() |
|
r |
Soubor je otevřen pro čtení,
ukazatel je nastaven na začátek. |
r+ |
Soubor je otevřen pro čtení i pro zápis, ukazatel je nastaven na začátek. |
w |
Soubor je vytvořen a otevřen pro
zápis. Pokud existoval, je zkráce na nulovou délku. |
w+ |
Soubor je vytvořen a otevřen pro čtení i zápis. Pokud existoval, je zkráce na nulovou délku. |
a |
Soubor je otevřen pro
připisování. Ukazatel je nastaven na konec. Pokud neexistuje, pokusí se
PHP soubor vytvořit. |
a+ |
Soubor je otevřen pro čtení nebo připisování. Ukazatel je nastaven na konec. Pokud neexistuje, pokusí se PHP soubor vytvořit. |
Ještě jednou se zmíním o právech k souborům: Na úspěšné vykonání
funkce fopen musíte mít k vytvářenému nebo otevíranému souboru
dostatečná práva. Většinou je mít nebudete na komerčních webhostinzích,
protože správci nedávají uživateli, pod nímž běží PHP příliš rozsáhlá
práva. Takže, na Linuxsoftu by se Vám například vytvoření souboru
nepovedlo. Pokud byste ale měli na serveru účet, mohli byste si soubor
počitadla vytvořit ručně. Ani to Vám však nemusí fungovat, pokud nejste
uživatelem, který spouští PHP. Já jsem například musel aby příklad
fungoval soubor nejprve vytvořit, a pak změnit jeho práva tak, aby do
něj mohl zapisovat a číst z něj kdokoli.
A ještě něco: Pokud požadujete otevřít soubor například v režimu r+
a nemáte k tomu práva, PHP nahlásí neúspěch a nepokusí se otevřít
soubor v žádném jiném režimu (třeba, jen čtení). Myslete na to.
Pozn.: Stav počitadla nebude
souhlasit s číslem určujícím počet shlédnutí tohoto článku. Tam je
použita odlišná filozofie.
Možná vás napdane, co by se stalo, kdyby se do souboru pokusili přistupovat dva uživatelé najednou. V takovém případě by naše jednoduché počitadlo mohlo selhat. V praxi se v takovém případě nasazuje systém zamykání souborů, který se v PHP realizuje příkazem flock.
Častou úlohou související se zpracováním souborů je vytáhnout z nich data (třeba data, která se budou vkládat do databáze). PHP přímo podporuje zpracování souborů s hodnotami oddělenými středníky. Máte-li třeba následující soubor:
Petr;Zajíc;1. máje
6;Liberec
Franta;Jetel;Novodvorská 12;Praha
Pepa;Jouda;Pakoměřice 23;Pakoměřice
můžete jej rozsekat na jednotlivé hodnoty pomocí volání funkce fgetcsv. Následující ukázka to ozřejmí:
Pozn.: Pakoměřice skutečně existují.
<?
$radek = 1;
$soubor = fopen ("30_data.csv","r");
while ($data =
fgetcsv ($soubor, 1000))
{
echo "<p>Zpracovávam
řádek č.$radek: <br>";
$radek++;
foreach ($data as $polozka)
{
print $polozka. "<br>";
}
}
fclose ($soubor);
?>
Příkaz fgetcsv načte řádek a vrátí jej jako pole položek $data. Ta
následně zobrazíme pomocí funkce foreach. Fgetcsv může obsahovat
nepovinný třetí parametr, který specifikuje jiný oddělovač (třeba
tabelátor, středník a podobně).
Pozn.: Většina databází má vlastní
rychlý způsob načítání textových souborů do tabulek, takže to tvrzení v
úvodu berte s rezervou.
Zpracování souborů v PHP zahrnuje daleko více. Za určitých okolností
je možné například:
My se v dalším díle našeho seriálu zaměříme na to, jak nám může PHP pomoci při kopírování souborů na server nebo při stahování souborů ze serveru.
|
||
DISCUSSION
For this item is no comments. |
||
Add comment is possible for logged registered users.
|
1. |
Pacman linux Download: 5093x |
2. |
FreeBSD Download: 9305x |
3. |
PCLinuxOS-2010 Download: 8792x |
4. |
alcolix Download: 11187x |
5. |
Onebase Linux Download: 9906x |
6. |
Novell Linux Desktop Download: 0x |
7. |
KateOS Download: 6455x |
1. |
xinetd Download: 2618x |
2. |
RDGS Download: 937x |
3. |
spkg Download: 5241x |
4. |
LinPacker Download: 10381x |
5. |
VFU File Manager Download: 3393x |
6. |
LeftHand Mała Księgowość Download: 7479x |
7. |
MISU pyFotoResize Download: 3084x |
8. |
Lefthand CRM Download: 3754x |
9. |
MetadataExtractor Download: 0x |
10. |
RCP100 Download: 3371x |
11. |
Predaj softveru Download: 0x |
12. |
MSH Free Autoresponder Download: 0x |