Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie plików wg daty
Forum PHP.pl > Forum > PHP
david8213
  1. <?PHP
  2. $OpenDir=opendir(".");
  3. while (($file = readdir($OpenDir))!=false)
  4. { if(($file!=".") && ($file!="..") && ($file!="index.php") && ($file!="images") && ($file!="style.css") && ($file!="czytaj.php") && ($file!="data.txt") && ($file!="licznik.txt") && ($file!="return.php")&& ($file!="add.php")&& (is_file($file)))
  5. {
  6. echo("<a href='$file' target=blank><img src='$file' width=150></a> ");
  7. }
  8. }
  9. ?>


Co i gdzie dopisać żeby wyświetlało pliki wg daty od ostatniego pliku wrzuconego na serwer żeby był na początku
david8213
Wyświetlanie plików... nie działa wg daty

  1. <?PHP
  2.  
  3. $files = array();
  4. if ($handle = opendir('.')) {
  5. while (false !== ($file = readdir($handle))) {
  6. if ($file != "." && $file != "..") {
  7. $files[filemtime($file)] = $file;
  8. }
  9. }
  10. closedir($handle);
  11.  
  12.  
  13. ksort($files);
  14.  
  15. $reallyLastModified = end($files);
  16.  
  17. foreach($files as $file) {
  18. $lastModified = date('F d Y, H:i:s',filemtime($file));
  19. if(strlen($file)-strpos($file,".jpg")== 4){
  20. if ($file == $reallyLastModified) {
  21.  
  22. }
  23. echo "<a href=\"$file\" target=\"_blank\">$file</a>$lastModified";
  24. }
  25. }
  26. }
  27.  
  28.  
  29.  
  30. ?>
viking
Działa. Przykładowy wynik samych dat (krsort zamiast ksort):
Kod
October 31 2017, 13:15:13
October 10 2017, 07:35:48
October 09 2017, 05:34:49
September 25 2017, 15:28:58
david8213
Tak teraz działa. Dziękuję
Co nalezy zmienić zeby wyswietlało mi oprócz plików JPG pliki BMP, JPEG, i PNG ?
viking
  1. $dir = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
  2. $ext = ['jpg', 'png', 'bmp'];
  3. $files = [];
  4.  
  5. foreach ($dir as $fileinfo) {
  6. if (!in_array($fileinfo->getExtension(), $ext)) continue;
  7. $files[$fileinfo->getMTime()][] = $fileinfo->getFilename();
  8. }
  9. krsort($files);
  10. var_dump($files);
david8213
niestety nie znam się na tyle żeby to zastosować do mojego kodu
viking
Pętli nie umiesz zastosować? Zero myślenia i tylko czekanie na gotowe. Skopiuj sobie z kodu wyżej.
david8213
Gdybym się na tym znał to bym nie prosił o pomoc
viking
To sobie poczytaj jak iterowac po elementach tablicy. I dobrze napisałeś. Pomoc a nie cały kod który ktoś za ciebie będzie pisał. Dane juz masz.
david8213
ten cały kod co podałeś ma być wykorzystany ? czy to jest jakiś przykład
viking
Uruchom go to się dowiesz.
david8213
  1. <?PHP
  2.  
  3. $dir = ".";
  4. $dirnew = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
  5. $ext = ['jpg', 'png', 'bmp'];
  6. $files = [];
  7. if ($handle = opendir($dir)) {
  8. while (false !== ($file = readdir($handle))) {
  9. if ($file != "." && $file != ".." && $file != "index.php") {
  10. $files[filemtime($file)] = $file;
  11. }
  12. }
  13. closedir($handle);
  14.  
  15. krsort($files);
  16. var_dump($files);
  17.  
  18.  
  19. $reallyLastModified = end($files);
  20.  
  21. foreach ($dirnew as $fileinfo) {
  22. $lastModified = date('F d Y, H:i:s',filemtime($file));
  23. if (!in_array($fileinfo->getExtension(), $ext)) continue;
  24. $files[$fileinfo->getMTime()][] = $fileinfo->getFilename(); {
  25. if ($file == $reallyLastModified) {
  26.  
  27. }
  28. echo "<a href=\"$file\" target=\"_blank\"><img src=\"$file\" width=\"130\"></a>&nbsp;";
  29. }
  30. }
  31. }
  32.  
  33. ?>
  34.  
  35.  
viking
Mój kod na pewno tak nie wyglądał. O tym śmietniku wcześniej zapomnij.
david8213
Jak uruchamiam twój kod to nic się nie dzieje

  1. <?
  2. $dir = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
  3. $ext = ['jpg', 'png', 'bmp'];
  4. $files = [];
  5.  
  6. foreach ($dir as $fileinfo) {
  7. if (!in_array($fileinfo->getExtension(), $ext)) continue;
  8. $files[$fileinfo->getMTime()][] = $fileinfo->getFilename();
  9. }
  10. krsort($files);
  11. var_dump($files);
  12. ?>
viking
Bo pewnie masz wyłączoną składnię <?. Używaj <?php
david8213
Używam <?PHP
viking
No jakoś nie widzę w kodzie wyżej. W najgorszym razie wyświetli Array(0){}. Więc sprecyzuj co to znaczy "nic się nie dzieje"
david8213
Znalazłem inne rozwiązanie. Wyświetle wszystkie pliki i ukryje te których nie chcę aby były widoczne. Trudno inaczej nie potrafię


  1. <?PHP
  2.  
  3. $files = array();
  4. if ($handle = opendir('.')) {
  5. while (false !== ($file = readdir($handle))) {
  6. if ($file != "." && $file != ".." && $file != "...........ukryte pliki.......................") {
  7. $files[filemtime($file)] = $file;
  8. }
  9. }
  10. closedir($handle);
  11.  
  12.  
  13. ksort($files);
  14.  
  15. $reallyLastModified = end($files);
  16.  
  17. foreach($files as $file) {
  18. $lastModified = date('F d Y, H:i:s',filemtime($file));
  19. if(strlen($file)-strpos($file,".")== 4){ // kropka wyświetli wszystkie pliki a nie tylko .JPG
  20. if ($file == $reallyLastModified) {
  21.  
  22. }
  23. echo "<a href=\"$file\" target=\"_blank\">$file</a>$lastModified";
  24. }
  25. }
  26. }
  27.  
  28.  
  29.  
  30. ?>


Może znajdzie się ktoś kto mi pomoże



viking
http://tpcg.io/7dFp1I

Działa. U ciebie nie działa. Bardzo ciekawe.
david8213
  1. <?php
  2.  
  3. $dir = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
  4.  
  5. $ext = ['jpg', 'png', 'bmp'];
  6. $file = [];
  7.  
  8.  
  9. foreach ($dir as $fileinfo) {
  10.  
  11. if (!in_array($fileinfo->getExtension(),$ext)) continue;
  12.  
  13. $file[$fileinfo->getMTime()][] = $fileinfo->getFilename();
  14.  
  15. }
  16.  
  17. krsort($file);
  18.  
  19. var_dump($file);
  20.  
  21.  
  22. if(($file!=".") && ($file!="..") && (is_file($file)))
  23. {
  24. echo("<a href='$file'>$file</a><br>");
  25. }
  26.  
  27. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.