Страница 1 из 1

Вопросы об особенностях указания путей в PHP

Добавлено: 21 ноя 2014, 08:16
CrazyMode
День добрый уважаемые [s]знатоки[/s] форумчане.
подскажите нубу такую тему:
Вот делал я сайт, так как в нашей Бюджетной организации я самый знающий-понимающий в html\css и все такое.
Сразу замечу, что знаю и понимаю не так уж и много, но родина сказала надо, солдат ответил есть.

А теперь собственно вопрос:
Делал я сайт, делал, и все работало до того момента, когда потребовалось мне подключить php файл через include.
Подключил, проверяю, ну и собственно ошибка.
Не приятно.
Довольно быстро разобрался, что указание пути в универсальном формате, через / , тоесть через корень сайта тут не прокатывает.
И это было печально.
Указывать пути как ../../../header.php или как-то так, желания не было вообще.
Использовать вариант с
$path = $_SERVER['DOCUMENT_ROOT'];
include ("$path/header.php");
Можно было, он работал, и все было пучком.
Но все равно, я слишком ленивый человек, для того чтобы все время добавлять $path.
Поэтому, идя по пути наименьшего сопротивления, я решил сделать ход конем, ну или слоном, кому как, и поменять путь в php.ini
Точнее в include_path = добавить запись вида "D:\OpenServer\domains\localhost\"

Теперь include ("header.php"); собственно как и include ("/header.php"); работает.

И в этом и есть проблема, точнее, сейчас проблем нет, но в будущем может появится, поэтому сразу спрашиваю:

Скажем
o_nas/mini/otdelenya_mini_menu2.php
и
/o_nas/mini/otdelenya_mini_menu2.php
подключается любая запись, но ведь первая не должна, так как путь задан относительно папки в которой лежит файл, который собственно вызывает все это дело, а не корня сайта.

Несколько самбурно ~desu.
вот что я имею в виду:

есть файл otdelenya.php

который лежит так:
/o_nas/otdelenya/otdelenya.php
в первом случае путь будет таким(если я правильно все понимаю):
/o_nas/otdelenya/o_nas/mini/otdelenya_mini_menu2.php
,а во втором
/o_nas/mini/otdelenya_mini_menu2.php
но ведь он не такой, иначе бы первый вариант не подключался.

Эмм, почему так?

Добавлено: 21 ноя 2014, 15:11
Максим
CrazyMode, Путь подставляется в include_path и там ищется, не важно с косой чертой или без неё. То, где находится вызывающий файл вообще не имеет никакого значения.

Добавлено: 22 ноя 2014, 08:04
CrazyMode
Максим, спасибо тебе, добрый человек.
Я бы тебе плюсанул в карму, но тут нет такого.
Поэтому просто добра.