맨 처음 파일 관리자를 만들었으며 탐색 섹션에 대한 도움이 필요합니다. 다음은이 섹션의 코드는 다음과 같습니다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
으로 가고 싶다면 -2
이어야하고 some/path
으로 가고 싶다면 -1
이 있어야합니다.
어떻게이 문제를 해결할 수 있습니까?
매력처럼 작동합니다! 많은 감사합니다! – Erik