Как вы уже знаете, в параметр функции 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/