PHP-tiedoston () käsittely ja toiminnot
⚡ Älykäs yhteenveto
PHP:n tiedostojen käsittely käyttää runsasta joukkoa sisäänrakennettuja funktioita tiedostojen luomiseen, lukemiseen, kirjoittamiseen, kopioimiseen ja poistamiseen palvelimella. Tämä läpikäynti käsittelee file_exists-, fopen- ja sen tilat, fwrite-, fclose-, fgets-, copy-, unlink- ja file_get_contents-funktioita käytännön esimerkkien avulla.

Mikä on tiedosto?
Tiedosto on yksinkertaisesti resurssi tietojen tallentamiseen tietokoneelle.
Tiedostoja käytetään yleensä tallentamaan tietoja, kuten:
- Ohjelman konfigurointiasetukset
- Yksinkertaisia tietoja, kuten yhteystietojen nimiä puhelinnumeroita vasten.
- Kuvat, kuvat, valokuvat ja vastaava media.
PHP-tiedostomuotojen tuki
PHP-tiedostotoiminnot tukevat monenlaisia tiedostomuotoja, jotka sisältävät:
- Tiedosto.txt
- File.log
- Tiedosto.mukautettu_laajennus, eli tiedosto.xyz
- Tiedosto.csv
- File.gif, file.jpg ja vastaavat kuvamuodot
Tiedostoista on hyötyä useissa tilanteissa:
- Ne tarjoavat pysyvän ja kustannustehokkaan tiedontallennusratkaisun yksinkertaiselle datalle verrattuna tietokantoihin, jotka vaativat muita ohjelmistoja ja taitoja tietokannan hallintajärjestelmien hallintaan.
- Haluat tallentaa yksinkertaisia tietoja, kuten palvelinlokeja, myöhempää hakua ja analysointia varten.
- Haluat tallentaa ohjelman asetukset, eli program.ini
PHP-tiedostofunktiot
PHP tarjoaa kätevän tavan työskennellä tiedostojen kanssa runsaan sisäänrakennettujen funktioidensa kokoelman avulla.
Operatusjärjestelmät, kuten Windows ja macOS eivät ole kirjainkokoherkkiä, kun taas Linux or unix käyttöjärjestelmät ovat isoja ja pieniä kirjaimia herkkiä.
Tiedostojen nimeämisessä käytetään esimerkiksi pieniä kirjaimia, mikä varmistaa maksimaalisen yhteensopivuuden eri alustojen välillä.
Katsotaanpa nyt joitakin yleisimmin käytettyjä PHP-tiedostofunktioita.
PHP file_exists() -funktio
Tätä toimintoa käytetään määrittämään, onko tiedosto olemassa vai ei.
- Se on kätevä, kun haluamme tietää, onko tiedosto olemassa ennen sen käsittelyä.
- Voit käyttää tätä toimintoa myös luodessasi uutta tiedostoa ja haluat varmistaa, ettei tiedostoa ole jo palvelimella.
file_exists-funktiolla on seuraava syntaksi.
<?php file_exists($filename); ?>
TÄSSÄ,
- "file_exists()" on PHP-funktio, joka palauttaa tosi, jos tiedosto on olemassa ja false, jos sitä ei ole.
- ”$filename” on tarkistettavan tiedoston polku ja nimi
Alla oleva koodi käyttää file_exists-funktiota selvittääkseen, onko tiedostoa my_settings.txt olemassa.
<?php if (file_exists('my_settings.txt')) { echo 'file found!'; } else { echo 'my_settings.txt does not exist'; } ?>
Tallenna yllä oleva koodi tiedostoon nimeltä file_function.php. Olettaen, että tallensit tiedoston phptuts-kansioon htdocsissa, avaa URL http://localhost/phptuts/file_function.php selaimessasi. Saat seuraavat tulokset.
PHP fopen() -funktio
Fopen-funktiota käytetään tiedostojen avaamiseen. Sen syntaksi on seuraava.
<?php fopen($file_name,$mode,$use_include_path,$context); ?>
TÄSSÄ,
- "fopen" on PHP:n avoimen tiedoston toiminto
- "$tiedoston_nimi" on avattavan tiedoston nimi
- ”$mode” on tila, jossa tiedosto tulisi avata. Alla oleva taulukko näyttää tilat.
| tila | Tuotetiedot |
|---|---|
| r | • Lue tiedosto alusta. • Palauttaa arvon false, jos tiedostoa ei ole olemassa. • Lue ainoastaan |
| r+ | • Lue tiedosto alusta • Palauttaa arvon false, jos tiedostoa ei ole olemassa. • Lue ja kirjoita |
| w | • Kirjoita tiedostoon alussa • Lyhennä tiedosto nollaan • Jos tiedostoa ei ole olemassa, yritä luoda se. • Vain kirjoittaa |
| w+ | • Kirjoita tiedostoon alussa, katkaise tiedosto nollaan • Jos tiedostoa ei ole olemassa, yritä luoda se. • Lue ja kirjoita |
| a | • Liitä tiedoston loppuun • Jos tiedostoa ei ole olemassa, yritä luoda se. • Vain kirjoittaa |
| a+ | • Liitä tiedoston loppuun • Jos tiedostoa ei ole olemassa, yritä luoda se • Lue ja kirjoita |
- ”$use_include_path” on valinnainen, oletusarvo on false. Jos arvoksi asetetaan true, funktio etsii myös include-polusta.
- ”$context” on valinnainen ja sitä voidaan käyttää kontekstituen määrittämiseen.
PHP fwrite() -funktio
Fwrite-funktiota käytetään tiedostoihin kirjoittamiseen.
Sillä on seuraava syntaksi.
<?php fwrite($handle, $string, $length); ?>
TÄSSÄ,
- "fwrite" on PHP-toiminto tiedostoihin kirjoittamista varten
- "$handle" on tiedostoosoitinresurssi
- ”$string” on tiedostoon kirjoitettava data.
- ”$length” on valinnainen ja sitä voidaan käyttää tiedoston enimmäispituuden määrittämiseen.
PHP fclose() -funktio
Funktiota fclose() käytetään PHP:ssä jo avoinna olevan tiedoston sulkemiseen.
Sillä on seuraava syntaksi.
<?php fclose($handle); ?>
TÄSSÄ,
- "fclose" on PHP-toiminto avoimen tiedoston sulkemiseen
- "$handle" on tiedostoosoitinresurssi.
Katsotaanpa nyt esimerkkiä, joka luo tiedoston my_settings.txt. Käytämme funktioita fopen, fwrite ja fclose.
Alla oleva koodi "create_my_settings_file.php" toteuttaa yllä olevan esimerkin.
| Avaa tiedosto |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); ?> |
| Tiedoston sulkeminen |
<?php fclose($fh); ?> |
| Luo tiedosto |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); $text = <<<_END localhost;root;pwd1234;my_database _END; fwrite($fh, $text) or die("Could not write to file"); fclose($fh); echo "File 1 written successfully"; ?> |
Koodin testaus
Avaa URL http://localhost/phptuts/create_my_settings.php selaimessasi.
Saat seuraavan sivun.
Huomautus: jos levy on täynnä tai sinulla ei ole oikeutta kirjoittaa tiedostoja, saat virheilmoituksen.
Vaihda takaisin URL http://localhost/phptuts/file_function.phpMitä tuloksia saat?
PHP fgets() -funktio
Fgets-funktiota käytetään PHP-tiedostojen lukemiseen rivi riviltä. Sen perussyntaksi on seuraava.
<?php fgets($handle); ?>
TÄSSÄ,
- ”fgets” on PHP-funktio tiedostorivien lukemiseen
- "$handle" on tiedostoosoitinresurssi.
Katsotaanpa nyt esimerkkiä, joka lukee my_settings.txt-tiedoston fopen- ja fgets-funktioiden avulla.
Alla oleva koodi read_my_settings.php toteuttaa yllä olevan esimerkin.
<?php $fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it"); $line = fgets($fh); echo $line; fclose($fh); ?>
TÄSSÄ,
- "fopen"-funktio palauttaa osoittimen tiedostopolussa määritettyyn tiedostoon
- Funktiota ”die()” kutsutaan, jos tapahtuu virhe. Se näyttää viestin ja lopettaa skriptin suorituksen.
PHP copy()-funktio
PHP:n kopiointifunktiota käytetään tiedostojen kopioimiseen. Sen perussyntaksi on seuraava.
<?php copy($file,$copied_file); ?>
TÄSSÄ,
- "$file" määrittää kopioitavan tiedoston polun ja nimen.
- ”$copied_file” määrittää kopioidun tiedoston polun ja nimen
Alla oleva koodi havainnollistaa toteutusta.
<?php copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file"); echo "File successfully copied to 2"; ?>
Tiedoston poistaminen
Unlink-funktiota käytetään tiedoston poistamiseen. Alla oleva koodi havainnollistaa toteutusta.
<?php if (!unlink('my_settings_backup.txt')) { echo "Could not delete file"; } else { echo "File 1 successfully deleted"; } ?>
PHP file_get_contents() Funktio
File_get_contents-funktiota käytetään koko tiedoston sisällön lukemiseen.
file_get_contents- ja fgets-funktioiden ero on se, että file_get_contents palauttaa tiedostotiedot merkkijonona, kun taas fgets lukee tiedoston rivi riviltä.
Alla oleva koodi havainnollistaa toteutusta.
<?php echo "<pre>"; // Enables display of line feeds echo file_get_contents("my_settings.txt"); echo "</pre>"; // Terminates pre tag ?>
PHP-tiedostofunktioiden pikaopas
Alla oleva taulukko yhteenvetää tässä opetusohjelmassa käsitellyt tiedostofunktiot.
| Toiminto | Tuotetiedot |
|---|---|
| file_exists | Käytetään määrittämään, onko tiedosto olemassa vai ei |
| avata | Käytetään tiedoston avaamiseen. Palauttaa osoittimen avattuun tiedostoon |
| fwrite | Käytetään tiedostoihin kirjoittamiseen |
| fclose | Käytetään avoimen tiedoston sulkemiseen |
| fgets | Käytetään tiedoston lukemiseen rivi riviltä |
| kopio | Käytetään olemassa olevan tiedoston kopioimiseen |
| linkitys | Käytetään olemassa olevan tiedoston poistamiseen |
| file_get_contents | Käytetään palauttamaan tiedoston sisältö merkkijonona |


