真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP如何獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator

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

為衛(wèi)濱等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及衛(wèi)濱網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、衛(wèi)濱網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

 

PHP獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator

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

話不多說,直接看代碼:

$path = $argv[1];

// 獲取目錄下所有內(nèi)容
$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;
    }
}

//執(zhí)行 php PHP獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator.php ../

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

 

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

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

// 獲取所有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獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator.php
// 869 ../source/PHP大文件讀取操作.php
// Total 1491
 

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

測(cè)試代碼: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編程實(shí)戰(zhàn)》https://www.php.net/manual/en/class.recursivedirectoryiterator.phphttps://www.php.net/manual/en/class.splfileinfo.php

感謝各位的閱讀,以上就是“PHP如何獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)PHP如何獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


名稱欄目:PHP如何獲取目錄中的全部內(nèi)容RecursiveDirectoryIterator
轉(zhuǎn)載來源:http://weahome.cn/article/pdecdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部