91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何獲取目錄中的全部內容RecursiveDirectoryIterator

發布時間:2021-07-13 15:49:52 來源:億速云 閱讀:123 作者:chen 欄目:大數據

這篇文章主要講解了“PHP如何獲取目錄中的全部內容RecursiveDirectoryIterator”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP如何獲取目錄中的全部內容RecursiveDirectoryIterator”吧!

 

PHP獲取目錄中的全部內容RecursiveDirectoryIterator

這次我們來介紹一個SPL庫中的目錄迭代器,它的作用其實非常簡單,從名字就可以看出來,就是獲取指定目錄下的所有內容。之前我們要遍歷目錄獲取目錄及目錄下的所有文件一般是需要進行遞歸遍歷的,自己寫這個代碼說實話還是挺麻煩的,所以PHP為我們準備好了這一套內置API,當輸入指定的目錄后,直接返回該目錄下所有子目錄及文件內容。當然,并不是樹型的,順序并不一定,想要組織成樹型還需要我們自己再進行處理。

話不多說,直接看代碼:

$path = $argv[1];

// 獲取目錄下所有內容
$dirs = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);

foreach($dirs as $k=>$d){
    echo 'key:'. $k, PHP_EOL;
    if($d->isDir()){
        echo $d->getPathname(), PHP_EOL;
    }else{
        echo $d->getFilename(), PHP_EOL;
    }
}

//執行 php PHP獲取目錄中的全部內容RecursiveDirectoryIterator.php ../

// key:../.
// ../.
// key:../..
// ../..
// key:../source
// ../source
// key:../source/.
// ../source/.
// key:../source/..
// ../source/..
// key:../source/PHP獲取目錄中的全部內容RecursiveDirectoryIterator.php
// PHP獲取目錄中的全部內容RecursiveDirectoryIterator.php
// key:../source/PHP大文件讀取操作.php
// PHP大文件讀取操作.php
// key:../PHP大文件讀取操作.md
// PHP大文件讀取操作.md
// key:../PHP獲取目錄中的全部內容RecursiveDirectoryIterator.md
// PHP獲取目錄中的全部內容RecursiveDirectoryIterator.md

 

其實就一行代碼,然后直接循環輸出這個迭代器。從結果中我們可以看出,先進入 source 目錄遍歷完成后再遍歷外部的文件內容,按照目錄、文件名的順序依次獲取了目錄下的所有內容。是不是比我們自己寫遞歸函數要方便很多。

如果我們想獲取目錄下的所有PHP文件,并且計算他們的文件總大小呢?使用這一套迭代器操作也可以非常簡單的完成,我們只需要增加一個正則迭代器對前面的迭代器內容進行一下過濾就好了:

// 獲取所有php文件
$regIts = new RegexIterator($dirs, '/^.+\.php$/i');
$fileSize = 0;
foreach($regIts as $k=>$p){
    echo $p->getSize() . ' ' .  $k, PHP_EOL;
    $fileSize += $p->getSize();
}
echo 'Total ', $fileSize, PHP_EOL;

// 622 ../source/PHP獲取目錄中的全部內容RecursiveDirectoryIterator.php
// 869 ../source/PHP大文件讀取操作.php
// Total 1491
 

感覺就和 ls -l 一樣,可以方便的讓我們能夠進行目錄下的相關操作。這個類的使用就簡單的介紹到這里,關于SPL庫中還有許多值得我們探索的能力,慢慢學習慢慢實踐,不斷提升我們面向優雅編程的能力。

測試代碼:https://github.com/zhangyue0503/dev-blog/blob/master/php/202003/source/PHP%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%85%A8%E9%83%A8%E5%86%85%E5%AE%B9RecursiveDirectoryIterator.php

參考文檔:《PHP7編程實戰》https://www.php.net/manual/en/class.recursivedirectoryiterator.phphttps://www.php.net/manual/en/class.splfileinfo.php

感謝各位的閱讀,以上就是“PHP如何獲取目錄中的全部內容RecursiveDirectoryIterator”的內容了,經過本文的學習后,相信大家對PHP如何獲取目錄中的全部內容RecursiveDirectoryIterator這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

伽师县| 耒阳市| 嵊泗县| 凌源市| 衢州市| 吉林省| 苍南县| 临夏县| 鄢陵县| 东乌珠穆沁旗| 积石山| 甘洛县| 合江县| 四子王旗| 高州市| 梁河县| 堆龙德庆县| 镇平县| 内江市| 富源县| 双柏县| 玛多县| 班戈县| 易门县| 益阳市| 剑川县| 西昌市| 巴塘县| 元谋县| 郴州市| 嘉善县| 府谷县| 抚州市| 刚察县| 永善县| 松江区| 革吉县| 上杭县| 镇远县| 平潭县| 小金县|