Относительный путь

Aleksey

Новичок
Относительный путь

Приветсвую, господа!

Дано:

PHP:
<корневой каталог>
--<AnyDir>
----t.php
--index.php
--a.php
--b.php
как видите, у меня в корневом каталоге есть папка AnyDir, а в ней файл t.php. В самом корневом каталоге у меня файлы index.php, a.php и b.php

Файл a.php ссылается на файл b.php, вот так:

PHP:
require "./b.php";
а файл t.php, ссылается на a.php:

PHP:
require "../a.php";
суть проблемы в путях, допустим я перемещу файл t.php на каталог выше, либо наоборот, засуну еще в один каталог в глубь, тогда

PHP:
require "../a.php";
выдаст ошибку, так как не сможет найти этот файл.

Для решения этой проблемы нужно каким-то образом получить относительный путь, т.е. путь, в котором находится само приложение, как это сделать?

Я посмотрел справочник http://ru.php.net/manual/ru, но ничего похожего не нашел, есть пара функций - chdir и getcwd , но не думаю, что они подойдут для этого..


Для примера:
сайт физически расположен тут:
/home/mysite/www/
вот как мне получить этот путь с любой другой PHP-страницы, которая находится в этом каталоге, например с:
/home/mysite/www/index.php
/home/mysite/www/articles/index.php
/home/mysite/www/any/pages/index.php
 

Фанат

oncle terrible
Команда форума
Для решения этой проблемы тебе надо получить АБСОЛЮТНЫЙ путь.
и везде ссылаться на a.php одинаково: /home/mysite/www/a.php
ясно?
 

Aleksey

Новичок
Меня устраивает в принципе $_SERVER , но описания найти не могу, есть ли какие-нибудь ограничения, типа под Windows и под *nux работает/не работает, либо в конфигах где-нибудь прописан на хостере запрет какой-нибудь или ограничения на использование, в общем что это за зверь?

на a.php одинаково: /home/mysite/www/a.php
я пробовал делать так, но как это не странно, сей метод не работает :(
 

Фанат

oncle terrible
Команда форума
попробуй ещё раз.
для описанных тобой параметров и применений всё работает.
а все расхождения с реальностью будь добр исправлять сам.
 

Aleksey

Новичок
хм, виртуальнось, реальность и вымысел полностью совпадают с действительностью :D не работает оно..

ладно, если что потом, как на хостинг перееду, займусь сией проблемой, а пока просто запихаю в какую-нибудь константу или переменную значение из $_SERVER["DOCUMENT_ROOT"], если что, потом просто поменяю.

Всем спасибо за участее.
 

Aleksey

Новичок
конеша :)

...for inclusion (include_path='.;C:\php5\pear')...

как я понял, в \WINDOWS\pear.ini и/или \WINDOWS\php.ini надо прописать параметр include_path, чтобы эта фича работала, но это не универсально :( хотя хз, может на *nix-сервере все будет по другому..
 

Фанат

oncle terrible
Команда форума
отлично.
ты приплел сюда абсолютно не к месту include_path, который мог бы влиять на то, что у тебя РАБОТАЛО бы, а у тебя НЕ РАБОТАЕТ.

Посему придется отвечать. поскольу у тебя неадекватное восприятие действительности, то тебе запрещается писать в чужие темы.
 
Сверху