⊗ppPmFSRP 334 of 447 menu

Relatieve paden in PHP

Zoals je al weet, moet je in de parameter van de functie file_get_contents de bestandsnaam schrijven. Dit werkt echter alleen als het gelezen bestand zich in dezelfde map bevindt als waar ons script wordt uitgevoerd.

Als het bestand zich ergens anders bevindt, dan moet je in de parameter van de functie het pad naar dat bestand schrijven.

Laten we een voorbeeld bekijken.

Voorbeeld

Stel we hebben de volgende bestandsstructuur:

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

Laten we de inhoud van het tekstbestand lezen. Hiervoor hebben we, naast de bestandsnaam, ook de map nodig waarin het zich bevindt:

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

Voorbeeld

Stel we hebben de volgende bestandsstructuur:

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

In dit geval zal een poging om ons bestand te lezen, door alleen de naam als pad op te geven, eindigen in een fout:

<?php echo file_get_contents('test.txt'); // geeft een foutmelding ?>

Waarom treedt er een fout op? Het zit zo: we hebben de bestandsnaam in de functieparameter geschreven. Dit betekent dat het te lezen bestand zich moet bevinden in dezelfde map als het uitgevoerde script.

Ons te lezen bestand bevindt zich echter een niveau hoger, dus in de map die de map met het script bevat.

In dat geval moeten we expliciet in het pad naar het bestand aangeven dat dit bestand een niveau hoger gezocht moet worden. Hiervoor moet voor de bestandsnaam ../ geschreven worden. Laten we dat doen:

<?php echo file_get_contents('../test.txt'); // het bestand zal worden gelezen ?>

Voorbeeld

Stel we hebben de volgende bestandsstructuur:

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

In dit geval gaan we bij het lezen van het bestand eerst een niveau omhoog, en geven dan het pad naar ons bestand relatief ten opzichte van dat niveau aan:

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

Voorbeeld

Stel we hebben de volgende bestandsstructuur:

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

In dit geval moeten we twee keer een niveau omhoog:

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

Praktische opdrachten

Schrijf code die de inhoud van een tekstbestand leest:

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

Schrijf code die de inhoud van een tekstbestand leest:

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

Schrijf code die de inhoud van een tekstbestand leest:

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

Schrijf code die de inhoud van een tekstbestand leest:

  • /script1/
    • /script2/
      • /script3/
        • index.php
  • /dir1/
    • /dir2/
      • /dir3/
        • test.txt
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren