Relatív útvonalak PHP-ban

Amint azt már tudod, a file_get_contents függvény paraméterébe a fájl nevét kell írni. Ez azonban csak akkor működik, ha az olvasandó fájl abban a mappában található, amelyben a szkriptünk fut.

Ha a fájl más helyen található, akkor a függvény paraméterébe a fájlhoz vezető útvonalat kell írni.

Nézzük ezt egy példán keresztül.

Példa

Tegyük fel, hogy a következő a fájlszerkezetünk:

Olvassuk be a szöveges fájl tartalmát. Ehhez a fájlnév mellett meg kell adnunk a mappát is, amelyben található:

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

Példa

Tegyük fel, hogy a következő a fájlszerkezetünk:

Ebben az esetben a fájl olvasására tett kísérlet, amikor az útvonalként csak a fájlnevét adjuk meg, hibával fog végződni:

script/index.php<?php
  echo file_get_contents('test.txt'); // hibát jelez
?>

Miért jelent meg a hiba? Azért, mert a függvény paraméterébe a fájl nevét írtuk. Ez azt jelenti, hogy az olvasandó fájlnak abban a mappában kell lennie, ahol a futó szkript található.

Azonban az olvasandó fájlunk egy szinttel feljebb található, vagyis abban a mappában, amely a szkriptet tartalmazó mappát tartalmazza.

Ebben az esetben explicit meg kell adnunk az útvonalban, hogy ezt a fájlt egy szinttel feljebb kell keresni. Ehhez a fájlnév elé kell írnunk a ../ részt. Tegyük ezt meg:

php<?php
  echo file_get_contents('../test.txt'); // a fájl beolvasásra kerül
?>

Példa

Tegyük fel, hogy a következő a fájlszerkezetünk:

Ebben az esetben a fájl olvasásakor először egy szinttel feljebb lépünk, majd megadjuk a fájlunk útvonalát ehhez a szinthez képest:

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

Példa

Tegyük fel, hogy a következő a fájlszerkezetünk:

Ebben az esetben kétszer kell feljebb lépnünk:

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

Gyakorlati feladatok

Задание 1

Írj kódot, amely beolvassa a szöveges fájl tartalmát:

  • index.php
  • /dir1//dir2/test.txt
Задание 2

Írj kódot, amely beolvassa a szöveges fájl tartalmát:

  • /script/index.php
  • /dir1//dir2/test.txt
Задание 3

Írj kódot, amely beolvassa a szöveges fájl tartalmát:

  • /script1//script2/index.php
  • /dir/test.txt
Задание 4

Írj kódot, amely beolvassa a szöveges fájl tartalmát:

  • /script1//script2//script3/index.php
  • /dir1//dir2//dir3/test.txt