Размещено: 2023-12-17 14:36:13
Теги: php
ОТНОСИТЕЛЬНЫЕ И АБСОЛЮТНЫЕ ПУТИ В PHP
Относительные пути
Путь к файлам можно указать относительно:
include '../file.php'; require('config.php');
При этом при запуске такого файла через консоль все эти пути собьются и ничего работать уже не будет. Способ подходит только для запуска через веб-сервер - для сайтов и запуска через cron через get или wget.
Привязка к корневой директории сайта
На сайтах, если не планируется крутить скрипты в бэкграунде и через крон, удобнее всего привязываться в корню сайта. Тогда при любых изменениях уровня вложенности файла, при его переносе все прикрепленные файлы будут работать и ничего не придется менять. Что бы из любой папки в файловой системе сайта получить путь к корневому каталогу сайта используют:
require($_SERVER['DOCUMENT_ROOT'].'/config.php');
Относительно-абсолютные пути
Если файл будет запускаться через консоль, через cron, то все описанное выше - работать не будет. Относительные пути будут отсчитываться от того места где запущен файл, а в массиве $_SERVER не будет DOCUMENT_ROOT. Поэтому если задача запускать файлы в виде консольных команд или крутить скрипты кроном, то оптимально воспользоваться другим способом. При прикреплении файлов нужно указывать относительный путь, от директории в которой находится текущий файл, с привязкой к этой директории:
require(__DIR__.'/../config.php'); require(__DIR__.'/../../file.php');
Тогда файл будет работать одинаково и при запуске через веб-сервер и при запуске через консоль или крон.
На эту страницу чаще всего попадают по запросам: