Перейти к содержимому

Как указать путь к файлу в php

  • автор:

Относительные пути в 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"); 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *