SPL
kullanarak nasıl alabilirim?PHP SPL RecursiveDirectoryIterator RecursiveIteratorIterator tam ağaç alma
cevap
Varsayılan olarak, RecursiveIteratorIterator
__construct
ikinci argüman için LEAVES_ONLY
kullanacağı istediğiniz everythng yapmak. Bu sadece dosyaları döndüreceği anlamına gelir.
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST
);
ve sonra bunun üzerine foreach
yapabilirsiniz: dosyaları ve dizinleri eklemek istiyorsanız (en azından ben bir tam dizin ağacını düşünün ne) yapmanız gerekir. Dizini çıktılamak yerine dizin ağacına döndürmek isterseniz, bir dizide saklayabilirsiniz.
foreach ($iterator as $fileObject) {
$files[] = $fileObject;
// or if you only want the filenames
$files[] = $fileObject->getPathname();
}
Ayrıca yaparak foreach
olmadan $fileObjects
dizisi oluşturabilir: Yalnızca istiyorsanız
$files[] = iterator_to_array($iterator);
dizinleri böyle $iterator
üzerinde, foreach
döndürdü:
foreach ($iterator as $fileObject) {
if ($fileObject->isDir()) {
$files[] = $fileObject;
}
}
sadece can veya
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file)
{
/* @var $file SplFileInfo */
//...
}
Hi, anlamadığım şey, nasıl - [RecursiveIteratorIterator] PHP belgesinden (http://php.net/manual/fr/class.recursiveiteratoriterator) .php) - "$ file" nin SplFileInfo türünde olduğunu mu düşünüyorsunuz? – martin
- 1. RecursiveDirectoryIterator() boş dizinleri göstermiyor
- 2. PHP RecursiveIteratorIterator ve iç içe kümeler
- 3. PHP array_key_exists() ve SPL ArrayAccess arayüzü: uyumlu değil misiniz?
- 4. php RecursiveDirectoryIterator: dizin yollarını bir nokta ve çift nokta ile nasıl hariç tutabilirsiniz?
- 5. SPL otomatik yükleyicide Özel durumlar mı atıyorsunuz?
- 6. Bir montajın tam adını alma
- 7. RecursiveDirectoryIterator "Çok fazla açık dosya" konulu UnexpectedValueException atar
- 8. Besteci ne yüklemeden ne de RecursiveDirectoryIterator yolu
- 9. Tüm .php dosyalarını yinelenen klasörde bul
- 10. Mantıksal OR için tam dış birleştirme alternatifleri ağaç yapısı sorgusunda
- 11. Minimum Kapsayan Ağaç: Kesim Mülkiyeti tam olarak nedir?
- 12. Gönderideki tüm değişkenleri alma (PHP)
- 13. Apache/PHP çıkış önbelleğe alma
- 14. PHP: Tamsayıya intran alma hatasına dönüştürüyor
- 15. PHP RecursiveIteratorIterator: Her bir şube düzeyinde ilk ve son öğeyi belirleme
- 16. Ağaç listesinin hiyerarşiye dönüştürülmesi
- 17. isDot() neden yanımda değil? (PHP)
- 18. Eşmerkezli dairelerdeki ikili ağaç
- 19. PHP ile tam rasgeleleştirme (Kumarhaneler için kullanabilirsiniz)?
- 20. Geçerli sayfanın tam URL'sini PHP kullanarak edinme
- 21. WebKitFormBoundary PHP itibaren Görüntü/Dosya Veri Alma
- 22. PHP Sayfanın belirli bölümlerini önbelleğe alma
- 23. PHP: İlişkisel dizideki son tek öğe alma
- 24. Verileri Mysql'den php sayfasına dinamik olarak alma
- 25. Bir PHP işlevinde bir tweet'den tüm hashtag'leri alma
- 26. MySQL - Bir ağaç yapısını yinelemek
- 27. perl'de POST değerlerini alma
- 28. Geçerli çalışma dizini dışındaki dosyaların tam yolunu alma [java]
- 29. Tam hücre yüksekliğini işgal etmek için div alma
- 30. Mysql B + Ağaç uygulaması
çok teşekkürler @Gordon, çok ayrıntılı;) – kmunky