PHP Tiedoston avaus/luku/sulkeminen
- Edellinen sivu PHP tiedosto
- Seuraava sivu PHP tiedoston luominen/kirjoittaminen
Tässä luvussa selitämme, miten avata, lukea ja sulkea tiedosto palvelimella.
PHP Avaa tiedosto - fopen()
Paras tapa avata tiedosto on käyttää fopen() -funktio. Tämä funktio tarjoaa sinulle enemmän vaihtoehtoja kuin readfile() -funktio.
Kurssissa käytämme tekstitiedostoa "webdictionary.txt":
AJAX = asynkroninen JavaScript ja XML CSS = kasvautuvat tyyliarkit HTML = hyper teksti merkki kieli PHP = PHP Hypertext Preprocessor SQL = rakenteellinen kyselykieli SVG = skaalautuvat vektorigrafiikat XML = Laajennettu merkintäkieli
fopen() -funktio sisältää ensimmäisen parametrin tiedoston nimen, toinen parametri määrittää tiedoston avausmallin. Jos fopen() -funktio ei onnistu avaamaan määritettyä tiedostoa, seuraava esimerkki luo viestin:
Esimerkki
<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile, filesize("webdictionary.txt")); fclose($myfile); ?>
Vinkki:Seuraavaksi opimme fread() ja fclose() -funktion.
Tiedosto avataan seuraavilla malleista:
Malli | Kuvaus |
---|---|
r | Avaa tiedoston luettavaksi. Tiedoston osoitin alkaa tiedoston alusta. |
w | Avaa tiedoston kirjoitettavaksi. Poistaa tiedoston sisällön tai luo uuden tiedoston, jos sitä ei ole olemassa. Tiedoston osoitin alkaa tiedoston alusta. |
a | Avaa tiedoston kirjoitettavaksi. Tiedostossa oleva data säilytetään. Tiedoston osoitin alkaa tiedoston lopusta. Luo uusi tiedosto, jos sitä ei ole olemassa. |
x | Luo uuden tiedoston kirjoitettavaksi. Palauttaa FALSE ja virheen, jos tiedosto on jo olemassa. |
r+ | Avaa tiedoston luettavaksi ja kirjoitettavaksi. Tiedoston osoitin alkaa tiedoston alusta. |
w+ | Avaa tiedoston luettavaksi ja kirjoitettavaksi. Poistaa tiedoston sisällön tai luo uuden tiedoston, jos sitä ei ole olemassa. Tiedoston osoitin alkaa tiedoston alusta. |
a+ | Avaa tiedoston luettavaksi ja kirjoitettavaksi. Tiedostossa oleva data säilytetään. Tiedoston osoitin alkaa tiedoston lopusta. Luo uusi tiedosto, jos sitä ei ole olemassa. |
x+ | Luo uusi tiedosto luettavaksi ja kirjoitettavaksi. Palauttaa FALSE ja virheen, jos tiedosto on jo olemassa. |
PHP lukee tiedostoa - fread()
fread()-funktio lukee avoimen tiedoston.
fread() -funktio sisältää ensimmäisen parametrin tiedoston nimen, toinen parametri määrittää luettavan enimmäismäärän tietoja.
Seuraava PHP-koodi lukee "webdictionary.txt"-tiedoston loppuun asti:
fread($myfile, filesize("webdictionary.txt"));
PHP sulkee tiedoston - fclose()
fclose()-funktio sulkee avoimen tiedoston.
Huomautus:On hyvä ohjelmointitapa sulkea tiedostot, kun ne on käytetty. Et halua avointa tiedostoa käyttää palvelimesi resursseja.
fclose() vaatii sulkemisen tiedoston nimen (tai tiedoston nimen sisältävän muuttujan):
<?php $myfile = fopen("webdictionary.txt", "r"); // suoritettavaa koodia... fclose($myfile); ?>
PHP lukee yhden rivin tiedostosta - fgets()
fgets()-funktio lukee yhden rivin tiedostosta.
Esimerkki tulostaa "webdictionary.txt"-tiedoston ensimmäisen rivin:
Esimerkki
<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fgets($myfile); fclose($myfile); ?>
Huomautus:Kutsuttaessa fgets() funktiota tiedostopikamiira siirtyy seuraavaan riville.
PHP tarkistaa End-Of-File - feof()
feof() funktio tarkistaa, onko saavutettu "end-of-file" (EOF).
feof() on hyödyllinen tiedostojen pituutta tuntemattomien tietojen kiertämiseen.
Alla oleva esimerkki lukee "webdictionary.txt" tiedoston rivistä riville ennen tiedoston loppua:
Esimerkki
<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Tulosta rivi ennen tiedoston loppua while(!feof($myfile)) { echo fgets($myfile) . "<br>"; } fclose($myfile); ?>
PHP lukee yksittäisen merkin - fgetc()
fgetc() funktio lukee tiedostosta yhden merkin.
Alla oleva esimerkki lukee "webdictionary.txt" tiedoston merkkimerkistä merkkimerkkiin ennen tiedoston loppua:
Esimerkki
<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Tulosta yksittäinen merkki ennen tiedoston loppua while(!feof($myfile)) { echo fgetc($myfile); } fclose($myfile); ?>
Huomautus:Kutsuttaessa fgetc() funktiota tiedostopikamiira siirtyy seuraavaan merkkiin.
PHP Filesystem viittaus
Jos tarvitset täydellisen PHP tiedostojärjestelmän viittaus, vieraile CodeW3C.com tarjoamassa PHP Filesystem viittaus.
- Edellinen sivu PHP tiedosto
- Seuraava sivu PHP tiedoston luominen/kirjoittaminen