Релативне путање у PHP-у
Као што већ знате, у параметар функције file_get_contents
треба написати име фајла. Ово, међутим, функционише
само у случају да фајл који читамо лежи
у истој фасцикли у којој се покреће наш скрипт.
Ако фајл лежи на другом месту, онда у параметар функције треба написати пут до тог фајла.
Погледајмо на примеру.
Пример
Нека имамо следећу структуру фајлова:
- index.php
- /directory/
- test.txt
Прочитајмо садржај текстуалног фајла. За то ће нам, поред имена фајла, бити потребно навести и фасциклу у којој он лежи:
<?php
echo file_get_contents('directory/test.txt');
?>
Пример
Нека имамо следећу структуру фајлова:
- /script/
- index.php
- test.txt
У овом случају, покушај да прочитамо наш фајл навођењем његовог имена као путање, завршиће се грешком:
<?php
echo file_get_contents('test.txt'); // даће грешку
?>
Зашто се јавља грешка? Ствар је у томе што смо у параметар функције написали име фајла. То значи да фајл који читамо треба да се налази у истој фасцикли у којој се покреће скрипт.
Међутим, наш фајл за читање се налази ниво изнад, односно у тој фасцикли која садржи фасциклу са скриптом.
У том случају морамо експлицитно навести у путањи
до фајла да овај фајл треба тражити ниво
изнад. Зато испред имена фајла треба
написати ../. Урадимо то:
<?php
echo file_get_contents('../test.txt'); // фајл ће бити прочитан
?>
Пример
Нека имамо следећу структуру фајлова:
- /script/
- index.php
- /directory/
- test.txt
У овом случају, приликом читања фајла, прво ћемо изаћи ниво изнад, а затим навести пут до нашег фајла релативно у односу на тај ниво:
<?php
echo file_get_contents('../directory/test.txt');
?>
Пример
Нека имамо следећу структуру фајлова:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
У овом случају ће нам бити потребно да изађемо горе два пута:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Практични задаци
Напишите код који ће прочитати садржај текстуалног фајла:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Напишите код који ће прочитати садржај текстуалног фајла:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Напишите код који ће прочитати садржај текстуалног фајла:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Напишите код који ће прочитати садржај текстуалног фајла:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/