Адносныя шляхі ў PHP

Як вы ўжо ведаеце, у параметр функцыі file_get_contents след пісаць імя файла. Гэта, аднак, працуе толькі ў тым выпадку, калі чытаемы файл ляжыць ў той жа папцы, у якой запускаецца наш скрыпт.

Калі ж файл ляжыць у іншым месцы, то ў параметр функцыі трэба пісаць шлях да гэтага файла.

Паглядзім на прыкладзе.

Прыклад

Няхай у нас ёсць наступная структура файлаў:

Давайце прачытаем змесціва тэкставага файла. Для гэтага акрамя імя файла нам спатрэбіцца пазначыць яшчэ і папку, у якой ён ляжыць:

index.php<?php
  echo file_get_contents('directory/test.txt');
?>

Прыклад

Няхай у нас ёсць наступная структура файлаў:

У такім выпадку спроба прачытаць наш файл, пазначыўшы ў якасці шляху яго імя, скончыцца памылкай:

script/index.php<?php
  echo file_get_contents('test.txt'); // выдасць памылку
?>

Чаму выдаецца памылка? Справа ў тым, што мы ў параметр функцыі напісалі імя файла. Гэта азначае, што чытаемы файл павінен размяшчацца ў той жа папцы, што і запускаемы.

Аднак, наш чытаемы файл знаходзіцца на ўзровень вышэй, гэта значыць у той папцы, якая змяшчае папку са скрыптам.

У такім выпадку мы павінны явна паказаць у шляху да файла, што гэты файл трэба шукаць на ўзровень вышэй. Для гэтага перад імем файла след напісаць ../. Зробім гэта:

php<?php
  echo file_get_contents('../test.txt'); // файл будзе прачытаны
?>

Прыклад

Няхай у нас ёсць наступная структура файлаў:

У гэтым выпадку пры чытанні файла мы спачатку выйдзем на ўзровень вышэй, а затым пакажам шлях да нашага файла адносна гэтага ўзроўню:

script/index.php<?php
  echo file_get_contents('../directory/test.txt');
?>

Прыклад

Няхай у нас ёсць наступная структура файлаў:

У гэтым выпадку нам спатрэбіцца выйсці наверх два разы:

script/test/index.php<?php
  echo file_get_contents('../../directory/test.txt');
?>

Практычныя задачы

Задание 1

Напішыце код, які прачытае змесціва тэкставага файла:

  • index.php
  • /dir1//dir2/test.txt
Задание 2

Напішыце код, які прачытае змесціва тэкставага файла:

  • /script/index.php
  • /dir1//dir2/test.txt
Задание 3

Напішыце код, які прачытае змесціва тэкставага файла:

  • /script1//script2/index.php
  • /dir/test.txt
Задание 4

Напішыце код, які прачытае змесціва тэкставага файла:

  • /script1//script2//script3/index.php
  • /dir1//dir2//dir3/test.txt