@Extramezz

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

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

Неужели, нужно обязательно указывать пути с http:// (абсолютные) или я просто что-то делаю не так?
  • Вопрос задан
  • 1791 просмотр
Решения вопроса 1
Writerim
@Writerim
Заполнить позже...
первая ссылка
Это очень просто. Если путь указывается от корня системы, то это путь абсолютный.

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

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

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

Похожие вопросы