Релативни патеки во 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/