IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

1. diel - Úvod do práce so súbormi v PHP

Vitajte u prvej lekcie kurzu zaoberajúceho sa prácou so súbormi v jazyku PHP. V tomto kurze si ukážeme, ako čítať, zapisovať a spracovávať rôzne typy súborov v PHP. Najskôr ale musíme získať teoretické základy a objasniť si niektoré pojmy.

Prečo potrebujeme súbory?

Všetky dáta obsiahnuté v premenných sú uložené v pamäti RAM. Veľkou výhodou je, že sa rýchlo čítajú a zapisujú, avšak po ukončení behu skriptu sa nám navždy stratí. Čo keď tvoríme potrebné návštevnú knihu a potrebujeme si uchovávať záznamy? Pre trvalé ukladanie dát používame práve súbory.

Typy súborov

Všetky súbory delíme na:

  • textové a
  • binárne

Textové súbory

V textových súboroch sú dáta uložené tak, aby bola ľudsky čitateľná a šla otvoriť v textových editoroch (napr. V Poznámkový blok). Textové súbory môžu niekedy byť spracovateľné aj strojovo. V takomto prípade hovoríme o súboroch štruktúrovaných. V opačnom prípade sa jedná o súbory neštruktúrované.

Štruktúrované textové súbory

Obsah štruktúrovaných súborov je usporiadaný tak, aby program vedel, ako ho má interpretovať. Delí sa na tzv. Ploché súbory a hierarchické. Medzi týmito typmi vyberáme podľa "zložitosti" dát, ktoré chceme uložiť. So všetkými nižšie spomínanými formátmi vie PHP pracovať pomocou vstavaných funkcií.

Ploché súbory (flat files) vs. hierarchickej

Medzi jednoduché formy štruktúrovaných súborov patria tzv. Ploché súbory (flat files), kde sa väčšinou pracuje s oddeľovačmi, ktoré oddeľujú jednotlivé hodnoty primitívnych dátových typov (čísla, boolovské hodnoty true / false, reťazca). Ak chceme do súborov ukladať aj stromovej dátové štruktúry, ako napr. Polia alebo objekty, musíme použiť tzv. Hierarchické súbory. Tu sa spôsob ukladania dát medzi formátmi dosť líšia.

Súbory CSV

Najčastejšie používaný formát plochých súborov je CSV (C Omma S eparated V alues). Ako oddeľovača používame čiarku či bodkočiarka a jednotlivé záznamy dávame na samostatné riadky:

"Jan Novák",21,Programátor
"Marie Svobodová",45,Prodavačka
"Tomáš Procházka",27,Učitel
Súbory XML

Hierarchický formát XML (e X tensible M arkup L Anguage) nápadne pripomína svojou vnútornou štruktúrou HTML. V dnešnej dobe sú skôr nahradzované formátom JSON, ktorý je kratšia a jednoduchšia:

<?xml version="1.0" encoding="UTF-8" ?>
<lide>
    <clovek>
        <jmeno>Jan Novák</jmeno>
        <vek>21</vek>
        <povolani>Programátor</povolani>
    </clovek>
    <clovek>
        <jmeno>Marie Svobodová</jmeno>
        <vek>45</vek>
        <povolani>Prodavačka</povolani>
    </clovek>
    <clovek>
        <jmeno>Tomáš Procházka</jmeno>
        <vek>27</vek>
        <povolani>Učitel</povolani>
    </clovek>
</lide>
Súbory JSON

JSON (J ava S Cripta O bject N otation) je dnes asi najpoužívanejší formát hierarchických súborov. Už názov formátu napovedá, že je zápis JSON zhodný so zápisom objektov v JavaScripte. Ne-ASCII znakmi v reťazcoch musí byť tzv. Uvádzacích, ako vidíme na príklade. Je tomu tak z dôvodu lepšej prenosnosti:

[
    {
        "jmeno": "Jan Nov\u00e1k",
        "vek": 21,
        "povolani": "Program\u00e1tor"
    },
    {
        "jmeno": "Marie Svobodov\u00e1",
        "vek": 45,
        "povolani": "Prodava\u010dka"
    },
    {
        "jmeno": "Tom\u00e1\u0161 Proch\u00e1zka",
        "vek": 27,
        "povolani": "U\u010ditel"
    }
]

Neštruktúrované textové súbory

Neštruktúrované textové súbory, tiež nazývané obyčajný text, sú určené len na čítanie ľuďmi a nedajú sa programovo spracovať. Označujeme tak napríklad list napísaný v Poznámkový blok. Prípona týchto súborov je štandardne .txt:

Ahoj, volám sa Pavol a mám 26 rokov. Pracujem ako programátor v jednej nemenovanej pražskej firme. Programovanie je zároveň mojím najväčším koníčkom. Mimo to rád plávam a sledujem seriály. Myslíš, že by sme sa mohli niekedy stretnúť? Maj sa pekne, Pavol

Binárne súbory

Dáta môžeme uložiť aj v tzv. Binárnej forme. Vo svojej podstate sa jedná len o odtlačok určitej časti pamäte RAM. Tieto súbory nie sú ľudsky čitateľné, nemožno ich otvoriť textovým editorom a sú vždy štruktúrované. V tejto podobe sú na disku uložené napríklad obrázky a videá. V PHP sa so spracovaním týchto súborov stretneme málokedy a preto sa nimi v tejto lekcii nebudeme dopodrobna zaoberať.

Cesty a názvy súborov

Ako vieme, tak súbory sa na disku ukladajú do priečinkov. Zložky môžu obsahovať podpriečinky a vzniká nám tak hierarchická / stromová štruktúra. Keď budeme pracovať so súbormi, budeme musieť dať PHP informáciu, kde (v akej zložke) má súbor hľadať. To docielime tak, že funkciu, ktorá bude so súborom vykonávať nejakú činnosť (čítanie, zápis, ...), odovzdáme cestu k požadovanému súboru. Tieto cesty môžu byť absolútny alebo relatívny.

Relatívne cesty

Názov môže napovedať, že relatívna cesta k súboru sa bude k niečomu vzťahovať. V prípade PHP sa relatívna cesta vzťahuje vždy k priečinku, kde sa nachádza náš skript:

soubor.txt
nejaka-slozka/soubor.txt
../soubor.txt
../dalsi-slozka/soubor.txt

V prvom a najjednoduchším príkladu označujeme súbor s názvom soubor.txt v aktuálnej zložke, v druhom označujeme súbor, ktorý sa nachádza v priečinku nejaka-slozka (ktorá je v aktuálnej zložke), v treťom súbor v hierarchii o jednu zložku vyššie a v poslednom súbor , ktorý sa nachádza v priečinku dalsi-slozka, ktorá sa nachádza o jednu zložku vyššie.

Môžeme si všimnúť, že ako oddeľovače zložiek používame normálny lomky (/) a nie lomítka spätná (\), ako je to bežné na OS Windows. Na webhostingu a na serveroch všeobecne je totiž v naprostej väčšine prípadov operačný systém Linux, kde sa na oddeľovanie zložiek používajú práve klasická lomky a spätné lomítka sa používať nedajú. Naopak to ale funguje.:-)

Ak si s tým nechcete príliš lámať hlavu, tak je najdôležitejšie vedieť, že ak budeme na súbor referovať iba jeho názvom, PHP ho bude hľadať v priečinku, kde máme PHP skript nahraný.

Absolútnej cesty

Tieto cesty sa k žiadnej ďalšej zložke nevzťahujú a píšeme je celé, od tzv. Koreňovej zložky (v prípade Windows je to písmeno disku, v prípade Linuxu zložka /). Tento typ ciest si tu uvedieme len pre kompletnosť, pretože by som ich v PHP neodporúčal používať. Náš web totiž môžeme presúvať medzi rôznymi servermi, kde bude absolútna cesta k priečinku s naším webom úplne iná a zbytočne by sme si tak pridávala problémy. Mohlo by sa stať to, že po presune webe by naše PHP skripty hľadali súbor niekde, kde nie je, alebo v horšom prípade v nejakom cudzom priestore:) Absolútna cesta môže vyzerať napríklad takto:

/var/www/html/mujweb.cz/soubor.txt
C:\Apache2\htdocs\mujweb.cz\soubor.txt

To by pre dnešné lekciu bolo všetko:)

V budúcej lekcii, Práca s textovými súbormi v PHP , si ukážeme, ako čítať a zapisovať (nielen) neštruktúrované textové súbory.


 

Všetky články v sekcii
Práca so súbormi v PHP
Preskočiť článok
(neodporúčame)
Práca s textovými súbormi v PHP
Článok pre vás napísal Vít Labuda
Avatar
Užívateľské hodnotenie:
1 hlasov
Aktivity