我已經構建了我的第一個文件管理器,並且我需要一些導航部分的幫助。下面是這部分的代碼:使用array_slice()轉到上一個文件夾
# CONFIGURATION: Folder
$path = (empty($_GET['p']) ? '../../../' : '../../../'.$_GET['p']);
# CONTROL: The folder exists
if(file_exists($path)) {
$results = scandir($path);
}
# CONTROL: Root
if(!empty($_GET['p'])) {
$navigation_loop = explode('/', $_GET['p']);
if(count($navigation_loop) > 1) {
$sliced = array_slice($navigation_loop, 0, -1);
}
# LOOP
foreach($navigation_loop AS $navigation) {
echo '<a href="javascript:void(0)" class="filemanager-link" id="path-navigation" data="';
# CONTROL: There's more than one
if(count($navigation_loop) > 1) {
echo implode('/', $sliced);
# CONTROL: There's not more than one
} else {
echo $navigation;
}
echo '">';
echo $navigation;
echo '</a>';
}
}
$_GET['p']
包含完整路徑到當前文件夾,即some/path/to/show/you
。文件名永遠不會顯示在這GET
!
現在遇到了問題:當我在some/path
並點擊some
時,網站將我帶到文件夾some
。但如果我在some/path/to
並點擊some
,網站只需要我到some/path
。
我知道問題是什麼(array_slice($navigation_loop, 0, -1)
),但我不知道如何解決此問題。如果我在some/path
,那麼array_slice()
函數將爲-1
。但是當我在some/path/to
時,如果我想轉到some
和-1
,那麼應該是-2
,如果我想轉到some/path
。
我該如何解決這個問題?
工程就像一個魅力!非常感謝! – Erik