Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Listowanie plików ze wszystkich katalogów
jurajska
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.12.2015

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


Cześć,
jestem zupełnie początkujący.
Mam skrypt który listuje pliki ze wszystkich katalogów. To czego w nim brakuje to pokazywania daty stworzenia, modyfikacji, coś na wzór plików "index of /" oraz wstępnego ich posortowania po tej dacie.
Oprócz tego, nie działają poprawnie odnośniki do tych plików, jeżeli zawierają polskie litery - lecz to jest wtórny problem.
Poproszę o Waszą pomoc. Z góry dziękuję, MO.
Poniżej skrypt:

  1. <?php
  2. function GetAllLinksFromDir($dir, &$array) {
  3. if($dir[strlen($dir) - 1] != '/') $dir .= '/';
  4. $hand = opendir($dir);
  5. while($file = readdir($hand))
  6. if(is_file($dir.$file))
  7. $array[] = '<a href="'.$dir.$file.'">'.$dir.$file.'</a>';
  8. elseif(is_dir($dir.$file) && $file != '.' && $file != '..')
  9. GetAllLinksFromDir($dir.$file, $array);
  10. closedir($hand);
  11. }
  12. $linki = array();
  13. GetAllLinksFromDir('.', $linki);
  14. ksort($linki);
  15. echo join("<br>\n", $linki);
  16. ?>
  17.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jurajska
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.12.2015

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


Jest już OK. Mój wzrok zbłądził i nie zauważył, że listowało tylko pliki *.php.
Dodałem również podlinkowanie do tych plików.
Jeszcze jedno pytanie - w jaki sposób ominąć wypisywanie nazw katalogów a zostawić jedynie pliki, które się w nich znajdują?
Przykład:
2015-12-15 15:48:22 ./ftpwbpp/.. -> tego nie chcę wyświetlać
2015-12-15 15:36:32 ./index.php -> OK
2015-12-15 15:36:24 ./ftpklient/arny/151215/.. -> tego nie chcę wyświetlać
2015-12-15 15:36:24 ./ftpklient/arny/Całoœć/.. -> tego nie chcę wyświetlać
2015-12-15 15:36:24 ./ftpklient/arny/. -> tego nie chcę wyświetlać
2015-12-15 15:36:24 ./ftpklient/arny/Poprawki_14122015/.. -> tego nie chcę wyświetlać
2015-12-15 15:36:24 ./ftpklient/arny/Całoœć/. -> tego nie chcę wyświetlać
2015-12-15 15:35:17 ./ftpklient/arny/151215/15.pdf -> OK
2015-12-15 15:35:17 ./ftpklient/arny/151215/16.jpg -> OK

Mój aktualny skrypt:
  1. <body>
  2. <?php
  3. $search_path = './';
  4. $display = array('pdf'); // Zmienna dla wyświetlania konkretnego typu pliku
  5. $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($search_path));
  6. $data = array();
  7. foreach($files as $file) {
  8. $time = DateTime::createFromFormat('U', filemtime($file->getPathname()));
  9. // no need to explode the time, just make it a datetime object
  10. // if(in_array($file->getExtension(), $display) && $time > new DateTime('2014-01-15')) { // is PHP and is greater than jan 15 2014
  11. $data[] = array('filename' => $file->getPathname(), 'time' => $time->getTimestamp()); // push inside
  12. // }
  13. }
  14. usort($data, function($a, $b){ // sort by time latest
  15. return $b['time'] - $a['time'];
  16. });
  17.  
  18.  
  19. foreach ($data as $key => $value) {
  20. $time = date('Y-m-d H:i:s', $value['time']);
  21. echo "
  22. <span style='color: red;'.face='Tahoma, sans-serif'>
  23. <b style='color: green;'>$time</b> <a href=\"http://sub.mojadomena.pl/$value[filename]\"</a> $value[filename]
  24.  
  25. </span>
  26. <br/>
  27. ";
  28. }
  29. ?>
  30. </body>
  31.  


Pozdrawiam,
MO.
Go to the top of the page
+Quote Post

Posty w temacie
- jurajska   [PHP]Listowanie plików ze wszystkich katalogów   15.12.2015, 11:07:27
- - Pyton_000   Zamiast takich potworków lepiej użyć tego: [PHP] ...   15.12.2015, 11:17:50
- - jurajska   Dziękuję za szybką odpowiedź. Rzeczywiście, składn...   15.12.2015, 11:40:50
- - Pyton_000   http://stackoverflow.com/a/26602416/3732803   15.12.2015, 11:56:30
- - jurajska   Świetne, lecz listuje mi jedynie zawartość bieżące...   15.12.2015, 13:08:30
- - Pyton_000   jak dla mnie to to działa.listuje wszystkie z podk...   15.12.2015, 13:30:01
- - jurajska   Jest już OK. Mój wzrok zbłądził i nie zauważył, że...   15.12.2015, 16:00:18
- - viking   W foreach: [PHP] pobierz, plaintext if ($file-...   15.12.2015, 16:17:21
- - jurajska   Wszystko śmiga jak należy. Poniżej gotowiec dla po...   28.12.2015, 07:45:13
- - Pyton_000   [PHP] pobierz, plaintext $result = iconv('CP12...   28.12.2015, 07:53:33
- - jurajska   Próbowałem, nie zamienia. Ale biorąc pod uwagę że...   28.12.2015, 08:15:38
- - Pyton_000   Nie wiesz jaka zmienna odpowiada za nazwę pliku? ...   28.12.2015, 08:45:38
- - jurajska   Zrobiłem, niestety nie zamienia znaków. Również po...   28.12.2015, 10:00:36
- - Pyton_000   kod   28.12.2015, 10:25:22
- - jurajska   [PHP] pobierz, plaintext <body><?php $res...   28.12.2015, 10:48:08
- - Pyton_000   [PHP] pobierz, plaintext foreach($files as $fi...   28.12.2015, 10:53:54
- - jurajska   Dzięki za pomoc. Pomogło i tak i nie, a mianowici...   28.12.2015, 11:45:40
- - breadi   Witam, zastosowałem się do powyższego kodu, wszyst...   26.12.2016, 13:53:09
- - Pyton_000   basename   27.12.2016, 10:26:20


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 Aktualny czas: 16.10.2025 - 04:13