Текущий каталог верхнего уровня

Эдди

Новичок
Требуется определить текущий каталог, отбросив вложенные каталоги.
К примеру http://domain.ru/DIRECTORY/subdirectory.
Надо получить DIRECTORY, отбросив subdirectory.

DIRNAME($REQUEST_URI) дает и каталог, и подкаталог.

Без регулярного выражения не обойтись никак?
 

Фанат

oncle terrible
Команда форума
можно и обойтись.
но вопрос "можно ли обойтись без регулярного выражения" - не тот, который стоит задавать на форуме.
Отрезать часть строки по определенному правилу - это микроскопическая операция, которую программист должен сделать имеющимися у него средствами за 30 секунд не задумываясь о более правильных способах и продолжить заниматься более важными вещами.

Единственное, что здесь можно посоветовать - это что попытки отрезать что-то справа, как делает функция dirname - заведомо неправильные, при неизвестной структуре каталогов.
если тебе нужен первый каталог СЛЕВА - его и надо отрезать..
 

Эдди

Новичок
Пардон за неправильно поставленный вопрос. Но ответ, вроде, понял.
Хотя единственное, что приходит в голову и работает:
$dir=DIRNAME($_SERVER['REQUEST_URI']);
$pos=strrpos($dir,'/');
echo substr($dir,1,$pos-1);

Ты это имел в виду?
 

Фанат

oncle terrible
Команда форума
работает? а если вложенных каталогов будет 3, а не 2? или вовсе 1?
почему ты все время пытаешься отрезать справа?

и зачем в этом коде первая строчка?
 

Эдди

Новичок
работает? а если вложенных каталогов будет 3, а не 2? или вовсе 1?
почему ты все время пытаешься отрезать справа?

и зачем в этом коде первая строчка?
Ну, первую строку можно и убрать.

Если будет 3 каталога, ну разве функция strrpos не останавливается на первом вхождении?
Сечас проверю. Да. ты как всегда прав...-(

Подсказал бы хотя бы, где искать, чтобы отрезать слева.
 

Фанат

oncle terrible
Команда форума
мне всегда казалось, что функция strpos куда более очевидная и известная, чем strrpos.
 

Эдди

Новичок
мне всегда казалось, что функция strpos куда более очевидная и известная, чем strrpos.
Спасибо тебе огромное. Все ОК.
При любой вложенности каталогов.
Только в корне выдается пустая строка, но это меня вполне устраивает.
 

Фанат

oncle terrible
Команда форума
ну так ты режешь с первой позиции, а надо с нуля.
в корне должен выдаваться корневой каталог - /
 

Эдди

Новичок
ну так ты режешь с первой позиции, а надо с нуля.
в корне должен выдаваться корень - /
Так я получаю чистое имя каталогов. Без предварительного слэша.
Оно в БД записывается. Ну не люблю я слэши писать в базу:)
А корень в базе будет пустым. Не думаю, что это "преступление"...
 
Сверху