⊗ppPmFSRP 334 of 447 menu

Relativa sökvägar i PHP

Som du redan vet ska man skriva filnamnet i parametern till funktionen file_get_contents. Detta fungerar dock bara om filen som ska läsas ligger i samma mapp som vårt skript körs från.

Om filen ligger på en annan plats, måste sökvägen till den filen anges som parameter till funktionen.

Låt oss titta på ett exempel.

Exempel

Antag att vi har följande filstruktur:

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

Låt oss läsa innehållet i textfilen. För att göra detta behöver vi förutom filnamnet också ange mappen där den ligger:

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

Exempel

Antag att vi har följande filstruktur:

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

I det här fallet kommer ett försök att läsa vår fil genom att ange dess namn som sökväg att sluta i ett fel:

<?php echo file_get_contents('test.txt'); // kommer att ge ett fel ?>

Varför uppstår ett fel? Anledningen är att vi skrev filnamnet i funktionsparametern. Det betyder att filen som ska läsas måste placeras i samma mapp som den som körs.

Men vår fil som ska läsas finns en nivå högre upp, det vill säga i mappen som innehåller mappen med skriptet.

I så fall må vi uttryckligen ange i sökvägen till filen att denna fil ska sökas en nivå upp. För att göra detta ska man skriva ../ före filnamnet. Låt oss göra det:

<?php echo file_get_contents('../test.txt'); // filen kommer att läsas ?>

Exempel

Antag att vi har följande filstruktur:

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

I det här fallet, när vi läser filen, måste vi först gå upp en nivå, och sedan ange sökvägen till vår fil relativt den nivån:

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

Exempel

Antag att vi har följande filstruktur:

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

I det här fallet behöver vi gå uppåt två gånger:

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

Praktiska uppgifter

Skriv kod som läser innehållet i en textfil:

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

Skriv kod som läser innehållet i en textfil:

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

Skriv kod som läser innehållet i en textfil:

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

Skriv kod som läser innehållet i en textfil:

  • /script1/
    • /script2/
      • /script3/
        • index.php
  • /dir1/
    • /dir2/
      • /dir3/
        • test.txt
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa