Размещено: 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');

Тогда файл будет работать одинаково и при запуске через веб-сервер и при запуске через консоль или крон.


На эту страницу чаще всего попадают по запросам: