Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] lista plików
Forum PHP.pl > Forum > PHP
xian.pl
Witam
Zastanawiam się jak najszybciej odczytać 10 najstarszych plików,
coś w rodzaju polecenia -> np. passthru("ls -t -r | head -n 10",$output);
Lecz nie moge użyć funkcji passthru, system, exec, shell_exec.
magier123
nie wiem czy dobrze zrozumialem ale mam cos takiego do odczytania listy plikow z katalogu
  1. <?php
  2.  
  3. $katalog = dir('.'); // bieżący katalog
  4.  
  5. while($plik = $katalog->read()){
  6.  
  7. echo "- <a href=" .$plik. ">" .$plik. "</a><br>";
  8.  
  9. }
  10.  
  11. $katalog->close();
  12.  
  13. ?>
xian.pl
Dzieki temu co napisałeś dostane tylko liste plików, a jak mam z niej sprawdzić który jest najstarszy??

Jeszcze jedna poprawka powiedzmy ze w katalogu mam 200 000 plików. Pytanie jak najszybciej znaleźć 10 najstarszych?
magier123
to wydaje mi sie dobrym rozwiazaniem jesli chodzi o date
  1. <?
  2. $file="test.php";
  3.  
  4. $ct=filectime("$file");
  5. $mt=filemtime("$file");
  6. $at=fileatime("$file");
  7.  
  8. echo"Data utworzenia pliku: ".date("n-j-Y h:i:s", $ct)."<br>";
  9. echo"Data ostatniej aktualizacji pliku: ".date("n-j-Y h:i:s", $mt)."<br>";
  10. echo"Ostatnio otwarty: ".date("n-j-Y", $at)."";
  11. ?>


filectime();
wyświetla dokładny czas utworzenia pliku

filemtime();
wyświetla dokładny czas modyfikacji pliku

fileatime();
wyświetla datę ostatniego otwarcia pliku


no a potem jakies sortowanie
Jabol
Otwórz katalog za pomocą opendir. Potem readdir + filectime, do tego jakiś ładny algorytm sortowania i śmiga. Tylko jeden tip. Nie wczytuj wszystkich plików do tablicy! Sortuj na bierząco, trzymaj tylko 10 wpisów w pamięci.
magier123
No JABOL ladnie zlozyl moje informacje i przekazal dalej biggrin.gif
domis86
jakby sie uprzec to moznaby trzymac gdzies liste plikow w postaci kopca (tylko trzebaby kontrolowac dodawanie i usuwanie plikow), wtedy wyciagniecie 10 najnowszych wykonywałoby sie w czasie O(1), a dodawanie pliku do listy O(log n) biggrin.gif
wSBk
Cytat(magier123 @ 5.05.2007, 14:34:01 ) *
nie wiem czy dobrze zrozumialem ale mam cos takiego do odczytania listy plikow z katalogu
  1. <?php
  2.  
  3. $katalog = dir('.'); // bieżący katalog
  4.  
  5. while($plik = $katalog->read()){
  6.  
  7. echo "- <a href=" .$plik. ">" .$plik. "</a><br>";
  8.  
  9. }
  10.  
  11. $katalog->close();
  12.  
  13. ?>

A gdybym się chciał na tym przykładzie wyczytać tylko pliki pdf?
pbnan
Cytat(wSBk @ 11.05.2007, 13:53:58 ) *
A gdybym się chciał na tym przykładzie wyczytać tylko pliki pdf?

Najłatwiej jest się posłużyć funkcją glob() winksmiley.jpg
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.