php
2014-04-16 3 views 0 likes 
0

선택한 디렉토리 내의 모든 폴더 이름을 나열하려고합니다. 현재 유일한 출력은 "."입니다. 및 ".."하지만 내 코드는 현재 그들을 제거하도록 설계되었습니다. 그 외에도 내 테스트 폴더 내에 디렉토리가 있지만 출력은 빈 페이지입니다.다른 디렉토리 내에서만 디렉토리 읽기

class diring { 

    private $target = '/Users/Matthew/Documents/MDCMS/public_html/templates'; 

    private $dirs = array(); 

    private $err = array(); 

    function readdirs() { 

     if (is_dir($this->target)) { 
      if ($handle = opendir($this->target)) { 
      while (false !== ($item = readdir($handle))) { 
      if (is_dir($item) && $item != "." && $item != "..") { 
       echo $item; 
      } 
      } 
      closedir($handle); 
      } 
     } else { 
      $this->err[] = 'The directory you are trying to access does\'nt exist. '; 
      $this->errs(); 
     } 

    } 

    function errs() { 

     $errors = $this->err; 
     if (!empty($errors)) { 
      foreach ($errors as $error) { 
       echo $error; 
      } 
     } 

    } 




} 

누구나이 내가 출력 폴더 이름을 할 필요해야 문서를 통해보고, 내가 누락 알고 : 여기

는 코드입니다. 훨씬 쉽게

감사

답변

1

:

if(is_dir($this->target)) { 
    foreach(glob($this->target . '/*', GLOB_ONLYDIR) as $dir) { 
     echo basename($dir); 
    } 
} 

그냥 basename이의 배열을 유지하려면 다른 방법이 매우 유용 할 것이다

if(is_dir($this->target)) { 
    $dirs = array_map('basename', glob($this->target . '/*', GLOB_ONLYDIR)); 
    foreach($dirs as $dir) { 
     echo $dir; 
    } 
} 
+0

감사 – mdixon18

+0

을 작동하지만입니다 그냥 전체 경로보다는 폴더 이름을 표시하는 것이 가능합니다. – mdixon18

+0

예,'basename()'이 추가되었습니다. – AbraCadaver

관련 문제