взорвать — вывести конечную часть или последнюю папку $ _SERVER [‘DOCUMENT_ROOT’] в переполнение стека

Мне нужно использовать $_SERVER['DOCUMENT_ROOT']; отсканировать файлы и папки для отображения в моем меню навигации.

Допустим, мой корневой каталог находится на /home/user/public_html/website/,

Вот как я отображаю корневой каталог:

echo $_SERVER['DOCUMENT_ROOT'];

будет отображаться /home/user/public_html/website/

Вот как я отображаю папку в корневом каталоге:

echo $_SERVER['DOCUMENT_ROOT'].'about/';

будет отображаться /home/user/public_html/website/about/

Вопрос: Как я могу удалить все, что отображается, вплоть до корневой папки и / или подпапки.

пример: Если я эхо $_SERVER['DOCUMENT_ROOT']Я хочу, чтобы это отображалось как / вместо всего /home/user/public_html/website/ дорожка.

и если я отображаю подпапку, я хочу, чтобы она отображалась как /about/ вместо /home/user/public_html/website/about/,

Итак, как я могу заставить его повторить только конечную часть $_SERVER['DOCUMENT_ROOT']; вместо всего пути к каталогу?

я пробовал dirname а также basename но ни один из них не делает то, что мне нужно. Я думал о замене строк, но разве нет ничего проще $_SERVER['DOCUMENT_ROOT'] это просто выведет на экран корневую папку или корневую папку плюс подпапку?

Обновить:

Я закончил тем, что использовал ответ ниже от anant kumar singh, но настроил его, используя preg_split вместо взрыва, потому что preg_split может принимать несколько разделителей строк, тогда как взятие может занимать только 1.

$newArray = preg_split( " (-in/|-ca/|-co/) ", dirname($_SERVER['DOCUMENT_ROOT']) );
if(count($newArray)>1){
echo '/'.$newArray[1].'/';
}else{
echo '/';
}

Если вы знаете лучший способ выполнить то, что я пытаюсь сделать, пожалуйста, оставьте свои ответы ниже.

4

Решение

Вы можете пойти с разорваться следующим образом:

$newArray = explode('website/',$_SERVER['DOCUMENT_ROOT']);
if(count($newArray)>1){
echo "/".$newArray[1];
}else{
echo '/';
}

Как вы уже сказали, preg_split сделал работу за вас: —

$newArray = preg_split( " (-in/|-ca/|-co/) ", dirname($_SERVER['DOCUMENT_ROOT']) ); if(count($newArray)>1){ echo "/".$newArray[1]."/"; }else{ echo '/'; }

ПРИМЕЧАНИЕ: — Не паникуйте. Я не собираюсь брать ваш кредит. Я просто сделал это для будущих людей. Если вы поставите это как ответ, я удалю его.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]