Задать вопрос
@Extramezz

Как правильно указывать пути из PHP-скрипта?

Почему скрипт php не видит файл, лежащий с ним в папке при указании относительного пути?
a.txt
/papka_skripta_v_public_html/a.txt
__DIR__."/a.txt"
getcwd()."/a.txt"
//Никак не видит

Неужели, нужно обязательно указывать пути с http:// (абсолютные) или я просто что-то делаю не так?
  • Вопрос задан
  • 1830 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Writerim
@Writerim
Заполнить позже...
первая ссылка
Это очень просто. Если путь указывается от корня системы, то это путь абсолютный.

Если в начале пути корень не указать, то этот путь будет относительным, и он достаивается от текущего положения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sergey_privacy
Админ со стажем, начинающий DevOps
Возможен вариант, что на файл при его закачке были установлены неверные права. Если есть доступ по SSH, то выполните в каталоге с файлом команду
chmod 444 a.txt
. Через панель управления хостингом или через FTP тоже можно установить атрибуты файла r--r--r--.

Чуть выше вам дали тоже верный ответ, но я отвечу чуть более развернуто. Если указываете просто "a.txt", то по умолчанию находит в том же каталоге, где и php-скрипт. В случае указания конкретной папки XXX/a.txt, вы указываете что файл лежит в папке XXX, находящейся в текущей папке со скриптом. Вариант с указанием пути от корня, начинается с символа "/" и зачастую указывает на полный путь от реального корня диска. Но, если мне не изменяет память, директивами веб-сервера можно перебить это и корнем будет считаться корневая папка сервера или конкретного виртуального хоста. Сложнее вариант с многочисленными вызовами разных файлов из разных папок. Один файл может инклудиться из разных файлов в разных подпапках и тогда может возникнуть путаница, когда функция временами работает, а временами не работает. Тут может помочь только вариант указания полного пути от корня.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽