|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-10-18 23:19 UTC] bwoebi@php.net
-Summary: Error
+Summary: RecursiveDirectoryIterator output is not sorted
-Status: Open
+Status: Not a bug
[2015-10-18 23:19 UTC] bwoebi@php.net
[2015-10-19 07:25 UTC] messiah at os dot pl
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 01:00:01 2025 UTC |
Description: ------------ RecursiveDirectoryIterator() with RecursiveIteratorIterator() not sorting all values by name like on Windows. Try script below on Windows and Linux. This should be sorted by default by name folder and subfolder then next filename. Fix this. I tessted this on PHP 5.5.24 Linux and 5.4.8 Linux and 5.6.11 Windows Test script: --------------- <?php $MójFolder = __DIR__; $Pliki = array('Pliki'=>array(), 'Foldery'=>array()); $SkanerKatalogówIPlików = new RecursiveDirectoryIterator($MójFolder, RecursiveDirectoryIterator::SKIP_DOTS); $SkanujWszystkiePodkatalogi = new RecursiveIteratorIterator($SkanerKatalogówIPlików, RecursiveIteratorIterator::SELF_FIRST); foreach($SkanujWszystkiePodkatalogi as $WszystkiePlikiIFoldery){ if($WszystkiePlikiIFoldery->isDir()){ $Pliki['Foldery'][] = $WszystkiePlikiIFoldery .'/'; }elseif($WszystkiePlikiIFoldery->isFile()){ $Pliki['Pliki'][] = $WszystkiePlikiIFoldery->getPathname(); } } #print_r($Pliki); return $Pliki; Expected result: ---------------- Add sorting by name example: folder/subfolder1/filename.php folder/subfolder1/filename1.php