Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]DirectoryIterator sortowanie wyniku
!*!
post 26.09.2009, 11:00:23
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Tym sposobem odczytuję listę plików w katalogu, pomijając . oraz .. :
  1. $directory = 'folder';
  2.  
  3. foreach (new DirectoryIterator($directory) as $files) {
  4.  
  5. $onlydirectory = !$files -> isDot() and !$files -> isDir() and !$files -> isExecutable();
  6. $filename = $files -> getFilename();
  7. $date = $files -> getMTime();
  8. $date = date("d-m-Y H:i", $date);
  9.  
  10. $size = $files -> getSize();
  11. $sizeinkb = round($size/1024);
  12.  
  13. if($onlydirectory) {
  14.  
  15.  
  16. echo '<tr class="'. $class.'"><td class="tdf"><input type="checkbox" /></td><td class="tdf">'.imagefile($filename).'</td><td class="tdk">'.$filename.'</td><td class="tdn">'.$size.'</td><td class="tdn">'.$date.'</td><td class="tdu">edycja</td><td class="tdu">usun</td></tr>';
  17.  
  18.  
  19. }
  20.  
  21. }


Chciałbym nazwy plików posortować alfabetycznie:

  1. $directory = 'folder';
  2.  
  3. foreach (new DirectoryIterator($directory) as $files) {
  4.  
  5. $onlydirectory = !$files -> isDot() and !$files -> isDir() and !$files -> isExecutable();
  6. $filename = $files -> getFilename();
  7. $date = $files -> getMTime();
  8. $date = date("d-m-Y H:i", $date);
  9.  
  10. $size = $files -> getSize();
  11. $sizeinkb = round($size/1024);
  12.  
  13. if($onlydirectory) {
  14.  
  15.  
  16. $filetab[] = $filename;
  17.  
  18.  
  19. }
  20.  
  21. }
  22. sort($filetab);
  23.  
  24.  
  25. foreach ($filetab as $filename) {
  26. echo '<tr class="'. $class.'"><td class="tdf"><input type="checkbox" /></td><td class="tdf">'.imagefile($filename).'</td><td class="tdk">'.$filename.'</td><td class="tdn">'.$sizeinkb.'</td><td class="tdn">'.$date.'</td><td class="tdu">edycja</td><td class="tdu">usun</td></tr>';
  27.  
  28. }


Jednak nie wiem czy robię to dobrze, oraz jak odczytać w foreach inne dane?

Kod
foreach ($filetab as $filename && )


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--david8213--
post 24.07.2013, 05:26:17
Post #2





Goście







Co należy dodać żeby dodatkowo sortowało mi pliki po rozszerzeniu (po nazwie i rozszerzeniu)
Po nzawie jest już zrobione

  1. <?PHP
  2.  
  3. $directory = './'; // ścieżka do katalogu
  4.  
  5. $filetab = array();
  6.  
  7. $di = new DirectoryIterator($directory);
  8.  
  9. foreach ($di as $files)
  10.  
  11. {
  12.  
  13. $onlydirectory = !$files -> isDir() and !$files -> isDot() and !$files -> isExecutable(); // nie wyświetla katalogów !$files -> isDir()
  14.  
  15. $filename = $files -> getFilename();
  16.  
  17. $date = $files -> getMTime();
  18.  
  19. $date = date("d-m-Y H:i", $date);
  20.  
  21.  
  22. $size = $files -> getSize();
  23.  
  24. $sizeinkb = round($size/1024);
  25.  
  26.  
  27.  
  28. if($onlydirectory) {
  29.  
  30. $filetab[$filename] = array(
  31.  
  32. 'filename' => $files ->getFileName(),
  33.  
  34. 'size' => $files ->getSize(),
  35.  
  36. 'date' => $files ->getMTime()
  37.  
  38. );
  39.  
  40. }
  41.  
  42. }
  43.  
  44. ksort($filetab); // sortowanie według nazwy pliku
  45.  
  46.  
  47.  
  48. // Wyświetlenie plików będących w katalogu
  49.  
  50. foreach ($filetab as $filename => $files)
  51.  
  52. {
  53.  
  54. $ext = pathinfo($files['filename'], PATHINFO_EXTENSION); // Wyświetlanie zdefiniowanych plików
  55.  
  56. if (($ext=="gif") || ($ext=="jpg") || ($ext=="jpeg") || ($ext=="bmp") || ($ext=="html"))
  57.  
  58. {
  59.  
  60. echo '
  61.  
  62. <table width="1000"><tr>
  63.  
  64.  
  65.  
  66. <td bgcolor="#F5F5F5" width="400"> &nbsp; - &nbsp; <a href="'.$files['filename'].'">'.$files['filename'].'</a> </td>
  67.  
  68. <td bgcolor="#F5F5F5" width="110"><center><a> '.date('d-m-Y H:i', $files['date']).' </a></td>
  69.  
  70. <td bgcolor="#F5F5F5" width="70"><center><a> '.$files['size'].' Kb </a></td>
  71.  
  72. <td bgcolor="#F5F5F5" width="70"><center> <a href="delete.php?plik='.$files['filename'].'">usuń</a></td>
  73.  
  74. </tr></table> ';
  75.  
  76. }
  77. }
  78.  
  79.  
  80.  
  81. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.07.2025 - 02:33