PHP Tiedoston avaus/luku/sulkeminen

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);
?>

Suoritusohjelma

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);
?>

Suoritusohjelma

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);
?>

Suoritusohjelma

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);
?>

Suoritusohjelma

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.