php SPL DirectoryIterator 擷取網站目錄列表的方法_PHP教程

來源:互聯網
上載者:User

php SPL DirectoryIterator 擷取網站目錄列表的方法


自 PHP 5.0 起php便增加了一些內建的組件和介面,比如SPL(標準php庫,全稱:Standard PHP Library),該庫定義的一些類和介面極大的方便了php開發人員輕鬆快速的開發實際項目。本篇文章將簡單記錄一下SPL庫中的一個關於檔案夾(目錄)處理的類,DirectoryIterator。

關於處理檔案夾(目錄),首先看一下傳統的處理辦法,可參看本站文章:

php讀取目錄並列表顯示目錄中的檔案的函數

下面用 DirectoryIterator 類實現如上串連文章中的辦法:

function listDir($dir){if(!file_exists($dir)||!is_dir($dir)) return '';$dir=new DirectoryIterator($dir);$dirList=array('dirNum'=>0,'fileNum'=>0,'lists'=>'');while($dir->valid()){if($dir->getFilename()!=='.'&&$dir->getFilename()!=='..'){$dirList['lists'][$dir->key()]['name']=$dir->getFilename();if($dir->isDir()){//判斷是否是目錄$dirList['dirNum']++;$dirList['lists'][$dir->key()]['isDir']=1;}else{$dirList['fileNum']++;$dirList['lists'][$dir->key()]['isDir']='';}}    $dir->next();    }    return $dirList;}

下面是關於 DirectoryIterator 類中比較常見的一些方法及說明:

方    法

描    述

DirectoryIterator::__construct

由路徑構建一個新的目錄迭代器

DirectoryIterator::current

返回當前對象(Iterator介面所要求的方法)

DirectoryIterator::getATime

得到檔案的最後訪問時間

DirectoryIterator::getCTime

得到檔案的inode修改時間

DirectoryIterator::getChildren

如果這是一個目錄,為當前項返回一個迭代器

DirectoryIterator::getFilename

返回目前的目錄項的檔案名稱

DirectoryIterator::getGroup

得到檔案組

DirectoryIterator::getInode

得到檔案inode

DirectoryIterator::getMTime

得到檔案的最後修改時間

DirectoryIterator::getOwner

得到檔案所有者

DirectoryIterator::getPath

返回目錄路徑

DirectoryIterator::getPathname

返回目前的目錄項的路徑和檔案名稱

DirectoryIterator::getPerms

得到檔案許可權

DirectoryIterator::getSize

得到檔案大小

DirectoryIterator::getType

得到檔案類型

DirectoryIterator::isDir

如果當前項是一個目錄,返回true

DirectoryIterator::isDot

如果當前項是.或..,返回true

DirectoryIterator::isExecutable

如果檔案可執行,返回true

DirectoryIterator::isFile

如果檔案是一個常規檔案,返回true

DirectoryIterator::isLink

如果檔案是一個符號連結,返回true

DirectoryIterator::isReadable

如果檔案可讀,返回true

DirectoryIterator::isWritable

如果檔案可寫,返回true

DirectoryIterator::key

返回目前的目錄項

DirectoryIterator::next

移動到下一項

DirectoryIterator::rewind

將目錄指標返回到開始位置

DirectoryIterator::valid

檢查目錄中是否包含更多項

另外 SPL 類庫中處理目錄的方法還有 RecursiveDirectoryIterator 方法,這個方法與 DirectoryIterator 方法的區別就是可以擷取包括子目錄在內的所有檔案。

關於 RecursiveDirectoryIterator 的方法有:

方    法

描    述

RecursiveDirectoryIterator::getChildren

如果這是一個目錄,為當前項返回一個迭代器

RecursiveDirectoryIterator::hasChildren

返回當前項是否是一個目錄而不是.或..

RecursiveDirectoryIterator::key

返回目前的目錄項的路徑和檔案名稱

RecursiveDirectoryIterator::next

移動到下一項

RecursiveDirectoryIterator::rewind

將目錄指標返回到開始位置

RecursiveIteratorIterator::current

訪問當前元素值

RecursiveIteratorIterator::getDepth

得到遞迴迭代的當前深度

RecursiveIteratorIterator::getSubIterator

得到當前活動子迭代器

RecursiveIteratorIterator::key

訪問當前鍵

RecursiveIteratorIterator::next

前移到下一個元素

RecursiveIteratorIterator::rewind

將迭代器返回到頂級內層迭代器的第一個元素

RecursiveIteratorIterator::valid

檢查當前位置是否合法

可以看到,SPL可以很快、很高效地處理你可能遇到的有關目錄的所有問題。

另外關於 php DirectoryIterator 類的靠譜解釋可參看php類庫的標準文檔:

http://php.net/manual/en/class.directoryiterator.php

您可能感興趣的文章

  • PHP中跳出多重迴圈使用break,continue,goto,return,exit的用法和區別
  • php中echo,print,print_r,var_export,var_dump 的用法與區別
  • dedeCMS(織夢)網站伺服器目錄安全設定經驗分享
  • 如何去除codeIgniter開發的網站url裡面的index.php字串
  • PHP中file_get_contents於curl效能效率比較
  • PHP壓縮html網頁代碼(清除空格,分行符號,定位字元,注釋標記)
  • php讀取目錄並列表顯示目錄中的檔案的函數
  • 用PHP函數memory_get_usage擷取當前PHP記憶體消耗量以實現程式的效能最佳化

http://www.bkjia.com/PHPjc/992744.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/992744.htmlTechArticlephp SPL DirectoryIterator 擷取網站目錄列表的方法 自 PHP 5.0 起php便增加了一些內建的組件和介面,比如SPL(標準php庫,全稱:Standard PHP Library)...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.