Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Маленький вопросик по URL


Автор: s0lman 17.1.2008, 17:42
Мне недавно flashaa посоветовал использовать скрипт для определения текущей директории скрипта
Код

// Папка со скриптом(URL)
$dir = dirname( $_SERVER['PHP_SELF'] );
define('HTTP_DIR', ($dir == '/') ? $dir : $dir . '/' );

// Полный URL к папке со скриптом
define('HTTP_ROOT', 'http://' . $_SERVER['SERVER_NAME'] . HTTP_DIR );


Вопрос: как получить URL папки на один уровень ниже текущей?
Определить имя текущей директории и потом удалить из конца строки HTTP_ROOT ?

Автор: supercelt 17.1.2008, 17:58
Скажу алгоритм, если я тебя правильно понял, то  тебе наверное нужно следующее
есть путь;  http://regergrgfr.ru/dir1/dir2/dir3. Скрипт лежит в dir3. А тебе надо получить юрл до dir2.
Сначала експлодем раздели путь через слеши, сосчитай кол-во элементов массива, потом от этого числа отнеми 2 и выведи кол-во массивов без последнего
Код

$url='http://regergrgfr.ru/dir1/dir2/dir3';
$r=explode('/', $url);
$r2=count($r)-2;
for($y=0; $y<$r2; $y++)
{
implode('/', $r[$y]);
}

Не знаю правда будет работать или нет))

Автор: GeneralElectric 17.1.2008, 17:59
если речь идет о папке в файловой системе, то я бы сделал realpath(getcwd()."../")
а для пути на сайте... только руками, наверное. strrpos "/" и отрезать
с проверками, разумеется.

Автор: s0lman 17.1.2008, 19:37
supercelt, спасибо за алгоритм. 
Код и в самом деле не работал - пришлось немного подкорректировать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)