Адносныя шляхі ў PHP
Як вы ўжо ведаеце, у параметр функцыі file_get_contents
след пісаць імя файла. Гэта, аднак, працуе
толькі ў тым выпадку, калі чытаемы файл ляжыць
ў той жа папцы, у якой запускаецца наш скрыпт.
Калі ж файл ляжыць у іншым месцы, то ў параметр функцыі трэба пісаць шлях да гэтага файла.
Паглядзім на прыкладзе.
Прыклад
Няхай у нас ёсць наступная структура файлаў:
- index.php
- /directory/test.txt
Давайце прачытаем змесціва тэкставага файла. Для гэтага акрамя імя файла нам спатрэбіцца пазначыць яшчэ і папку, у якой ён ляжыць:
index.php<?php
echo file_get_contents('directory/test.txt');
?>
Прыклад
Няхай у нас ёсць наступная структура файлаў:
- /script/index.php
- test.txt
У такім выпадку спроба прачытаць наш файл, пазначыўшы ў якасці шляху яго імя, скончыцца памылкай:
script/index.php<?php
echo file_get_contents('test.txt'); // выдасць памылку
?>
Чаму выдаецца памылка? Справа ў тым, што мы ў параметр функцыі напісалі імя файла. Гэта азначае, што чытаемы файл павінен размяшчацца ў той жа папцы, што і запускаемы.
Аднак, наш чытаемы файл знаходзіцца на ўзровень вышэй, гэта значыць у той папцы, якая змяшчае папку са скрыптам.
У такім выпадку мы павінны явна паказаць у шляху
да файла, што гэты файл трэба шукаць на ўзровень
вышэй. Для гэтага перад імем файла след
напісаць ../. Зробім гэта:
php<?php
echo file_get_contents('../test.txt'); // файл будзе прачытаны
?>
Прыклад
Няхай у нас ёсць наступная структура файлаў:
- /script/index.php
- /directory/test.txt
У гэтым выпадку пры чытанні файла мы спачатку выйдзем на ўзровень вышэй, а затым пакажам шлях да нашага файла адносна гэтага ўзроўню:
script/index.php<?php
echo file_get_contents('../directory/test.txt');
?>
Прыклад
Няхай у нас ёсць наступная структура файлаў:
- /script//test/index.php
- /directory/test.txt
У гэтым выпадку нам спатрэбіцца выйсці наверх два разы:
script/test/index.php<?php
echo file_get_contents('../../directory/test.txt');
?>
Практычныя задачы
Напішыце код, які прачытае змесціва тэкставага файла:
- index.php
- /dir1//dir2/test.txt
Напішыце код, які прачытае змесціва тэкставага файла:
- /script/index.php
- /dir1//dir2/test.txt
Напішыце код, які прачытае змесціва тэкставага файла:
- /script1//script2/index.php
- /dir/test.txt
Напішыце код, які прачытае змесціва тэкставага файла:
- /script1//script2//script3/index.php
- /dir1//dir2//dir3/test.txt