Relativni putevi u PHP-u
Kao što već znate, u parametar funkcije file_get_contents
treba napisati ime fajla. Ovo, međutim, funkcioniše
samo u slučaju da se fajl koji čitamo nalazi
u istoj fascikli u kojoj se pokreće naš skript.
Ako se fajl nalazi na drugom mestu, onda u parametar funkcije treba napisati putanju do tog fajla.
Pogledajmo na primeru.
Primer
Neka imamo sledeću strukturu fajlova:
- index.php
- /directory/
- test.txt
Hajde da pročitamo sadržaj tekstualnog fajla. Za ovo pored imena fajla biće nam potrebno navediti i fasciklu u kojoj se nalazi:
<?php
echo file_get_contents('directory/test.txt');
?>
Primer
Neka imamo sledeću strukturu fajlova:
- /script/
- index.php
- test.txt
U ovakvom slučaju pokušaj čitanja našeg fajla, navedenjem njegovog imena kao putanje, završiće se greškom:
<?php
echo file_get_contents('test.txt'); // izaći će greška
?>
Zašto se javlja greška? Stvar je u tome što smo u parametar funkcije napisali ime fajla. Ovo znači da se fajl koji se čita treba nalaziti u istoj fascikli u kojoj se pokreće izvršni.
Međutim, naš fajl koji se čita se nalazi jedan nivo iznad, odnosno u onoj fascikli koja sadrži fasciklu sa skriptom.
U takvom slučaju moramo eksplicitno naznačiti u putanji
do fajla da ovaj fajl treba tražiti jedan nivo
iznad. Za ovo treba ispred imena fajla
napisati ../. Učinimo to:
<?php
echo file_get_contents('../test.txt'); // fajl će biti pročitan
?>
Primer
Neka imamo sledeću strukturu fajlova:
- /script/
- index.php
- /directory/
- test.txt
U ovom slučaju pri čitanju fajla prvo ćemo izaći jedan nivo iznad, a zatim ćemo naznačiti putanju do našeg fajla u odnosu na taj nivo:
<?php
echo file_get_contents('../directory/test.txt');
?>
Primer
Neka imamo sledeću strukturu fajlova:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
U ovom slučaju će nam trebati da izađemo gore dva puta:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Praktični zadaci
Napišite kod koji će pročitati sadržaj tekstualnog fajla:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Napišite kod koji će pročitati sadržaj tekstualnog fajla:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Napišite kod koji će pročitati sadržaj tekstualnog fajla:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Napišite kod koji će pročitati sadržaj tekstualnog fajla:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/