# Относительные пути в 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
- /directory/
  - test.txt

В этом случае нам потребуется выйти наверх два раза:

`<?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

←→
↑