我如何檢索the full directory tree
使用SPL
?PHP SPL RecursiveDirectoryIterator RecursiveIteratorIterator檢索完整樹
5
A
回答
18
默認情況下,RecursiveIteratorIterator
將使用LEAVES_ONLY
的第二個參數__construct
everythng。這意味着它只會返回文件。如果您要包括文件和目錄(至少這是我會考慮一個全目錄樹),你必須做的:
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST
);
,然後你可以foreach
了它。如果你想返回目錄樹而不是輸出它,你可以將它存儲在一個數組中,例如
foreach ($iterator as $fileObject) {
$files[] = $fileObject;
// or if you only want the filenames
$files[] = $fileObject->getPathname();
}
您還可以通過執行創建$fileObjects
沒有foreach
數組:
$files[] = iterator_to_array($iterator);
如果只想目錄返回,foreach
在$iterator
這樣的:
foreach ($iterator as $fileObject) {
if ($fileObject->isDir()) {
$files[] = $fileObject;
}
}
3
你可以,還是要
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file)
{
/* @var $file SplFileInfo */
//...
}
+0
嗨,我不明白的是,如何 - 從[RecursiveIteratorIterator]的PHP文檔(http://php.net/manual/fr/class.recursiveiteratoriterator .php) - 你是否扣除'$ file'是SplFileInfo類型? – martin 2016-12-29 20:27:58
相關問題
- 1. PHP SPL RecursiveDirectoryIterator - 的getPath和LTRIM路徑
- 2. PHP RecursiveDirectoryIterator
- 3. PHP使用SPL迭代器遞歸刪除空目錄
- 4. RecursiveDirectoryIterator + RecursiveIteratorIterator + RegexIterator不能像他們應該那樣工作
- 5. PHP,SimpleXMLIterator,RecursiveIteratorIterator
- 6. 嘗試使用RecursiveIteratorIterator
- 7. PHP,SPL,ArrayIterator
- 8. 請使用RecursiveDirectoryIterator
- 9. 使用RecursiveDirectoryIterator
- 10. 正在檢索完整數
- 11. Doctrine 2嵌套集 - 在單個查詢中檢索完整樹
- 12. 完整和完整的二叉樹最大和最小索引?
- 13. RecursiveIteratorIterator不會忽略.svn
- 14. RecursiveDirectoryIterator給出例外
- 15. 如何檢查樹是否完整?
- 16. RecursiveIteratorIterator空白頁面
- 17. PHP RecursiveIteratorIterator - 反向和計數結果
- 18. 使用RecursiveDirectoryIterator排序目錄列表
- 19. RecursiveIteratorIterator獲取子目錄
- 20. 限制RecursiveIteratorIterator()遞歸深度
- 21. PHP,SPL,FilterIterator行爲
- 22. 循環在多個RecursiveDirectoryIterator
- 23. 完整的二叉搜索樹和AVL樹的區別?
- 24. RecursiveDirectoryIterator()不顯示空目錄
- 25. 如何聚合使用PHP的SPL
- 26. 上市與RecursiveDirectoryIterator
- 27. PHP RecursiveIteratorIterator和嵌套集合
- 28. 如何使用PHP從地址欄中檢索完整的URL?
- 29. 建立一個簡單的目錄瀏覽器使用php RecursiveDirectoryIterator
- 30. 如何爲RecursiveIteratorIterator使用:: setMaxDepth?
非常感謝@戈登,非常詳細;) – kmunky 2010-04-18 23:03:39