⊗ppPmFSRP 334 of 447 menu

Suhteelliset polut PHP:ssä

Kuten jo tiedät, funktion file_get_contents parametriin tulee kirjoittaa tiedoston nimi. Tämä kuitenkin toimii vain, jos luettava tiedosto sijaitsee samassa kansiossa, jossa skriptimme suoritetaan.

Jos tiedosto sijaitsee muualla, parametriin tulee kirjoittaa polku kyseiseen tiedostoon.

Katsotaan esimerkkiä.

Esimerkki

Oletetaan, että meillä on seuraava tiedostorakenne:

  • index.php
  • /directory/
    • test.txt

Luetaan tekstitiedoston sisältö. Tätä varten tarvitsemme tiedoston nimen lisäksi myös kansion, jossa se sijaitsee:

<?php echo file_get_contents('directory/test.txt'); ?>

Esimerkki

Oletetaan, että meillä on seuraava tiedostorakenne:

  • /script/
    • index.php
  • test.txt

Tällöin yritys lukea tiedostomme antamalla poluksi sen nimen, päättyy virheeseen:

<?php echo file_get_contents('test.txt'); // aiheuttaa virheen ?>

Miksi virhe tapahtuu? Asia on siinä, että kirjoitimme funktion parametriin tiedoston nimen. Tämä tarkoittaa, että luettavan tiedoston tulee sijaita samassa kansiossa kuin suoritettava skripti.

Kuitenkin, luettava tiedostomme on ylimmällä tasolla, eli siinä kansiossa, joka sisältää skriptikansion.

Tällöin meidän on polussa eksplisiittisesti osoitettava, että tiedostoa on etsittävä ylimmälle tasolle. Tätä varten tiedoston nimen edessä tulee kirjoittaa ../. Tehdään näin:

<?php echo file_get_contents('../test.txt'); // tiedosto luetaan ?>

Esimerkki

Oletetaan, että meillä on seuraava tiedostorakenne:

  • /script/
    • index.php
  • /directory/
    • test.txt

Tässä tapauksessa tiedoston lukemisen yhteydessä siirrymme ensin ylimmälle tasolle, ja sitten osoitamme polun tiedostoomme suhteellisesti tähän tasoon:

<?php echo file_get_contents('../directory/test.txt'); ?>

Esimerkki

Oletetaan, että meillä on seuraava tiedostorakenne:

  • /script/
    • /test/
      • index.php
  • /directory/
    • test.txt

Tässä tapauksessa meidän on siirryttävä ylös kaksi kertaa:

<?php echo file_get_contents('../../directory/test.txt'); ?>

Käytännön tehtävät

Kirjoita koodi, joka lukee tekstitiedoston sisällön:

  • index.php
  • /dir1/
    • /dir2/
      • test.txt

Kirjoita koodi, joka lukee tekstitiedoston sisällön:

  • /script/
    • index.php
  • /dir1/
    • /dir2/
      • test.txt

Kirjoita koodi, joka lukee tekstitiedoston sisällön:

  • /script1/
    • /script2/
      • index.php
  • /dir/
    • test.txt

Kirjoita koodi, joka lukee tekstitiedoston sisällön:

  • /script1/
    • /script2/
      • /script3/
        • index.php
  • /dir1/
    • /dir2/
      • /dir3/
        • test.txt
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää