PHP 디 렉 터 리 트 리 읽 기 구현 방법 분석

이 실례 는 PHP 가 디 렉 터 리 트 리 를 읽 는 실현 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
얼마 전 면접 XX 회사 필기시험 문제 에 이런 문제 가 있 었 습 니 다.
디 렉 터 리 트 리 를 PHP 로 보 여 줍 니 다!
그 때 는 보 자마자 멍 해 졌 다!기본 적 인 사 고 는 있 습 니 다.재 귀 알고리즘 을 사용 하 는 것 에 불과 하지만 PHP 가 디 렉 터 리 파일 을 조작 하 는 방법 에 대해 잘 모 르 기 때문에 오늘 잘 복습 하 세 요!
문제 풀이 방향:
1.디 렉 터 리 에 있 는 파일 을 보 여 줍 니 다.
2.디 렉 터 리 여 부 를 판단 하고 디 렉 터 리 라면 계속 재 귀적 합 니 다.
3.모든 파일 이름 을 다 차원 배열 에 저장 합 니 다.

<?php
function recurDir($pathName)
{
  //      result   
  $result = array();
  $temp = array();
  //            
  if(!is_dir($pathName) || !is_readable($pathName)) {
    return null;
  }
  //             ,  scandir  
  $allFiles = scandir($pathName);
  //    
  foreach($allFiles as $fileName) {
    //     . ..            。。。
    if(in_array($fileName, array('.', '..'))) {
      continue;
    }
    //      
    $fullName = $pathName.'/'.$fileName;
    //                
    if(is_dir($fullName)) {
      //                 
      $result[$fullName] = recurDir($fullName);
    }else {
      //             
      $temp[] = $fullName;
    }
  }
  //    
  if($temp) {
    foreach($temp as $f) {
      $result[] = $f;
    }
  }
  return $result;
}
//            !
$tree = recurDir('cart_ajax');
echo "<pre>";
print_r($tree);
echo "</pre>";
?>

cart_ajax 폴 더 구조

js 폴 더 의 내용

결과 보이 기

큰 성 과 를 거 두 었 다!디 렉 터 리 의 등급 은 확실히 이 렇 습 니 다.하지만 너무 낮 아 보 입 니 다!살짝 미화 해 주세요!

function beautifulTree($arr, $l = '-|')
{
  static $l = '';
  static $str = '';
  //          
  foreach($arr as $key=>$val) {
    //      ,         ,            -|        
    if(is_array($arr[$key])) {
      $str.=$l.$key."<br/>";
      $l.='-|';
      beautifulTree($arr[$key], $l);
    }else {
      $str.=$l.$val."<br/>";
    }
  }
  $l = '';
  return $str;
}
$beautifulTree = beautifulTree($tree);
echo "<pre>";
print_r($beautiful);
echo "</pre>";

결과 보이 기

더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기