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:
- index.php
- /directory/
- test.txt
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ó:
<?php
echo file_get_contents('directory/test.txt');
?>
Példa
Tegyük fel, hogy a következő a fájlszerkezetünk:
- /script/
- index.php
- test.txt
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:
<?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
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:
- /script/
- index.php
- /directory/
- test.txt
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:
<?php
echo file_get_contents('../directory/test.txt');
?>
Példa
Tegyük fel, hogy a következő a fájlszerkezetünk:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Ebben az esetben kétszer kell feljebb lépnünk:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Gyakorlati feladatok
Írj kódot, amely beolvassa a szöveges fájl tartalmát:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Írj kódot, amely beolvassa a szöveges fájl tartalmát:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Írj kódot, amely beolvassa a szöveges fájl tartalmát:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Írj kódot, amely beolvassa a szöveges fájl tartalmát:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/