亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP讀取目錄樹的實(shí)現(xiàn)方法分析

 更新時(shí)間:2019年03月22日 09:40:08   作者:勵(lì)志成為一個(gè)弓箭手的程序猿  
這篇文章主要介紹了PHP讀取目錄樹的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php針對(duì)文件目錄結(jié)構(gòu)的遍歷、讀取操作實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP讀取目錄樹的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

前一陣時(shí)間面試XX公司筆試題中竟然有這樣一道題:

使用PHP列出目錄樹!

當(dāng)時(shí)一看就懵逼了!基本的思路還是有的,不過是使用遞歸算法,但對(duì)PHP操作目錄文件的方法卻不是很了解,所以今天好好補(bǔ)習(xí)一下!

解題思路:

1. 列出目錄中的文件。
2. 判斷是否是目錄,如果是目錄就繼續(xù)遞歸。
3. 將所有文件名,存入多維數(shù)組

<?php
function recurDir($pathName)
{
  //將結(jié)果保存在result變量中
  $result = array();
  $temp = array();
  //判斷傳入的變量是否是目錄
  if(!is_dir($pathName) || !is_readable($pathName)) {
    return null;
  }
  //取出目錄中的文件和子目錄名,使用scandir函數(shù)
  $allFiles = scandir($pathName);
  //遍歷他們
  foreach($allFiles as $fileName) {
    //判斷是否是.和..因?yàn)檫@兩個(gè)東西神馬也不是。。。
    if(in_array($fileName, array('.', '..'))) {
      continue;
    }
    //路徑加文件名
    $fullName = $pathName.'/'.$fileName;
    //如果是目錄的話就繼續(xù)遍歷這個(gè)目錄
    if(is_dir($fullName)) {
      //將這個(gè)目錄中的文件信息存入到數(shù)組中
      $result[$fullName] = recurDir($fullName);
    }else {
      //如果是文件就先存入臨時(shí)變量
      $temp[] = $fullName;
    }
  }
  //取出文件
  if($temp) {
    foreach($temp as $f) {
      $result[] = $f;
    }
  }
  return $result;
}
//驗(yàn)證一下這個(gè)函數(shù)是否好用!
$tree = recurDir('cart_ajax');
echo "<pre>";
print_r($tree);
echo "</pre>";
?>

cart_ajax文件夾結(jié)構(gòu)

js文件夾下的內(nèi)容

顯示結(jié)果

大功告成了!目錄的級(jí)別確實(shí)是這樣的,不過看起來(lái)也太low了吧!稍微美化一下吧!

function beautifulTree($arr, $l = '-|')
{
  static $l = '';
  static $str = '';
  //遍歷剛才得到的目錄樹
  foreach($arr as $key=>$val) {
    //如果是個(gè)數(shù)組,也就代表它是個(gè)目錄,那么就在它的子文件中加入-|來(lái)表示是下一級(jí)吧
    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>";

顯示結(jié)果

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP目錄操作技巧匯總》、《php文件操作總結(jié)》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論