Задача полягается в том что бы не зависимо от того в корневом каталоге находится сайт или подкаталоге определить путь к катлогу в котором храниться сайт, я подошел к этому так. допустим я знаю что у меня один файл точно всегда будет находиться в папке include и поэтому решил написать код который ниже. Если кто-то знает методы более лучше подскажите пожалуйста. PHP: define("DS",(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')?substr(dirname(__FILE__),0,strpos(dirname(__FILE__),'\include')):substr(dirname(__FILE__),0,strpos(dirname(__FILE__),'/include')));
В корневом каталоге чего сайт находится? Вы про файловую систему на хосте? а $_SERVER['DOCUMENT_ROOT'] это не оно?
нет это не оно. сайт может находить в любой директории он может быть в корневой , а может быть и где-то в подвале /www/site.ru/domen/subdomen/site - примерно так допустим, где /home/site.ru/www/ - это будет корневой каталог /home/site.ru/www/domen/subdomen/site - место где лежит сайт в документ рут будет хранится директория -> /home/site.ru/www/
PHP: <?php define("DS", dirname(__FILE__) . "/include"); // Универсально define("DS", dirname(__FILE__) . DIRECTORY_SEPARATOR . "include"); ?>
за директори сеператор спасибо а все остальное так же как у меня потому что дир_нейм ты не получаешь корневой каталог а получаешь каталог в котором вызывается файл а файл вызывается в подкатологе include.По сути ты написал тоже самое что и я только не довел до конца ед. за что спасибо это директори сеператор. Изменил с сеператором, и вследствие убрал проверку на какой ОС запускается файл. PHP: <?php define("DS",substr(dirname(__FILE__),0,strpos(dirname(__FILE__),DIRECTORY_SEPARATOR.'include'))); ?>
а если как-то так? PHP: <? $my_file = __FILE__; $my_basename = basename($my_file); $my_dir = str_replace ( $my_basename, '', $my_file); echo $my_dir; define ('ROOT', $my_dir); ?>
Ладно всё можно закрывать тему Для универсальности я получил совет с сеператором.Больше ее никак не улучшишь.