2014-03-27 5 views
1

php에서 부모 디렉토리를 표시하지 않고 지정된 디렉토리의 하위 디렉토리 목록을 얻는 방법은 무엇입니까? 이것은 내가 샘플 출력으로 무엇을 가지고어떻게 특정 디렉토리의 하위 디렉토리 만 나열합니까?

$subdirs = array_filter(glob('mydir/*'), 'is_dir'); 
foreach($subdirs as $s){ 
echo $s.'<br>'; 
} 

: 이미, 나는 이런 식으로 뭔가가 가 mydir/계정을 가 mydir/지불

는 난 단지 출력으로이 원하는 : 계정, 지불

제발, 어떻게해야합니까?

답변

1

당신은 (mydir 오프를 제거) 마지막 폴더를 반환하는 basename()를 사용할 수 있습니다.

$subdirs = array_filter(glob('mydir/*'), 'is_dir'); 
foreach($subdirs as $s){ 
    echo basename($s) . '<br>'; 
} 

참고 :이 여러 하위 디렉토리에 대해 작동하지 않습니다, 당신은 str_replace()를 사용하여 mydir/ 부분을 없애기 좋을 것 :

$subdirs = array_filter(glob('mydir/*'), 'is_dir'); 
foreach($subdirs as $s){ 
    echo str_replace('mydir/', '', $s) . '<br>'; 
} 
4

방법에 대해 :

$subdirs = array_map('basename', glob('mydir/*', GLOB_ONLYDIR)); 

또는 나중에 $subdirs를 사용하고 전체 경로를 유지해야하는 경우 :

$subdirs = glob('mydir/*', GLOB_ONLYDIR); 
foreach(array_map('basename', $subdirs) as $s) { 
0

기본 이름을() 나를 형성했다.

$subdirs = array_filter(glob('mydir/*'), 'is_dir'); 
foreach($subdirs as $s){ 
echo basename($s) . '<br>'; 
} 

이 또한 나를 위해 일한 :

foreach($subdirs as $s){ 
echo str_replace("mydir/", "", $s).'<br>'; 
} 
+0

는 않았다 물론, 그것은 다른 답변 6 분 전했다. – AbraCadaver

관련 문제