Относительные пути в PHP
Как вы уже знаете, в параметр функции file_get_contents следует писать имя файла. Это, однако, работает только в том случае, если читаемый файл лежит в той же папке, в которой запускается наш скрипт.
Если же файл лежит в другом месте, то в параметр функции нужно писать путь к этому файлу.
Посмотрим на примере.
Пример
Пусть у нас есть следующая структура файлов:
- index.php
- /directory/
- test.txt
Давайте прочитаем содержимое текстового файла. Для этого кроме имени файла нам понадобится указать еще и папку, в которой он лежит:
Пример
Пусть у нас есть следующая структура файлов:
- /script/
- index.php
В таком случае попытка прочитать наш файл, указав в качестве пути его имя, закончится ошибкой:
Почему выдается ошибка? Дело в том, что мы в параметр функции написали имя файла. Это значит, что читаемый файл должен размещаться в той же папке, что и запускаемый.
Однако, наш читаемый файл находится на уровень выше, то есть в той папке, которая содержит папку со скриптом.
В таком случае мы должны явно указать в пути к файлу, что этот файл нужно искать на уровень выше. Для этого перед именем файла следует написать ../ . Сделаем это:
Пример
Пусть у нас есть следующая структура файлов:
- /script/
- index.php
- test.txt
В этом случае при чтении файла мы сначала выйдем на уровень выше, а затем укажем путь к нашему файлу относительно этого уровня:
Пример
Пусть у нас есть следующая структура файлов:
- /script/
- /test/
- index.php
- test.txt
В этом случае нам потребуется выйти наверх два раза:
Практические задачи
Напишите код, который прочитает содержимое текстового файла:
Напишите код, который прочитает содержимое текстового файла:
Напишите код, который прочитает содержимое текстового файла:
- /script1/
- /script2/
- index.php
- test.txt
Напишите код, который прочитает содержимое текстового файла:
PHP как указать путь к файлу который находится выше папки с сайтом?
Я ничего не понял, dirname(DIR); возвращает такой путь — /home/n/myname/site (Мне нужен еще выше, на папке myname) Второй путь возвращает /home/j/jizziioc/nintendo/public_html/../ Что мне с ним делать? Можно более точный пример как мне подключить мой файл который хранится здесь? /home/n/myname/vendor/autoload.php
9 сен 2018 в 16:54
Посмотрите сначала на мой комментарий, потом на свой, потом опять на мой. И так продолжайте до полного просветления
9 сен 2018 в 16:57
А объяснить можете? Какой смысл в dirname(DIR); если он возвращает папку с сайтом, а мне нужна папка на уровень выше
9 сен 2018 в 16:59
dirname(__DIR__) возвращает каталог родителя. Повторное использование dirname вернёт родителя родителя.
Как указать путь к файлу в php
Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011
Откуда: МоскваПомог: 0 раз(а)
У меня такая проблемма. index.php и файл соединения с базой данных configyration.pnp находятся в разных папках.
Соединение не происходит! Скрипты работают коректно если configyration.pnp находится в той же папке что и index.php. Подскажите как правильно прописать путь!
(Отредактировано автором: 14 Января, 2012 — 15:52:33)
Отправлено: 14 Января, 2012 — 15:56:13
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010Помог: 322 раз(а)
(Отредактировано автором: 14 Января, 2012 — 15:57:01)
Отправлено: 14 Января, 2012 — 15:56:24
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007
Откуда: BerlinПомог: 707 раз(а)
include_once ( ‘/полный/путь/от/корня/до/configyration.php’ ) ;
include_once ( ‘../папка_с_файлом/configyration.php’ ) ;——
Есть в мире две бесконечные вещи — это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.Отправлено: 14 Января, 2012 — 15:59:08
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010Помог: 322 раз(а)
EuGen а «..» дает какое-то преимущество или не важно?
Отправлено: 14 Января, 2012 — 16:01:32Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007
Откуда: BerlinПомог: 707 раз(а)
Насколько я понял, есть такая структура:
— в таком случае без .. нельзя обратиться по относительному пути (или же, как я указал, использовать абсолютный). У абсолютного пути есть существенный минус — он жестко привязывает к файловой системе, делая невозможным перенос скрипта куда-либо еще, тогда как в случае относительного пути описанную выше структуру папок можно использовать где угодно.
——
Есть в мире две бесконечные вещи — это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.Отправлено: 14 Января, 2012 — 16:10:20
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostovПомог: 9 раз(а)
include_once(«папка/configyration.pnp»); смотри вроде так:
./floder/file.php — местонахождение от скрипта вызова
floder/file.php — местонахождение от скрипта вызова
../floder/file.php — местонахождение на уровень выше..
/flodert/file.php — местонахождение от корня сайта
Вроде так(Отредактировано автором: 14 Января, 2012 — 16:11:33)
Отправлено: 14 Января, 2012 — 16:16:02
Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011
Откуда: МоскваПомог: 0 раз(а)
Попробовал прописать путь;
include_once ( ‘../папка_с_файлом/configyration.php’ ) ;
выдает ошибки.
CODE (html):
скопировать код в буфер обменаWarning: include_once(../папка/папка/configyration.php) [function.include-once]: failed to open stream: No such file or directory in /home/fff/public_html/ffff/vers/index.php on line 1
Warning: include_once() [function.include]: Failed opening ‘../папка/папка/configyration.php’ for inclusion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/fff/public_html/ffff/vers/index.php on line 1
Warning: mysql_query() [function.mysql-query]: Access denied for users ‘имя’@’localhost’ (using password: NO) in /home/fff/public_html/ffff/vers/index.php on line 5
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/fff/public_html/ffff/vers/index.php on line 5
Как указать путь к файлу в java
Чтобы указать путь к файлу в Java , можно использовать класс java.io.File . Существует несколько способов задания пути:
File file = new File("/path/to/file.txt"); // Здесь /path/to/file.txt - абсолютный путь к файлу.Относительный путь от текущего каталога:
File file = new File("file.txt"); // Здесь file.txt - файл, расположенный в текущем каталоге.Относительный путь от корня проекта:
File file = new File("src/main/resources/file.txt");
- /script2/
- /test/
