Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] lista plików
xian.pl
post 5.05.2007, 12:55:05
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.03.2007
Skąd: Zielona Góra

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


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.


--------------------
Go to the top of the page
+Quote Post
magier123
post 5.05.2007, 13:34:01
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


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. ?>
Go to the top of the page
+Quote Post
xian.pl
post 5.05.2007, 13:51:20
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.03.2007
Skąd: Zielona Góra

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


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?


--------------------
Go to the top of the page
+Quote Post
magier123
post 5.05.2007, 13:57:36
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


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
Go to the top of the page
+Quote Post
Jabol
post 5.05.2007, 15:14:56
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


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.
Go to the top of the page
+Quote Post
magier123
post 5.05.2007, 15:41:43
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


No JABOL ladnie zlozyl moje informacje i przekazal dalej biggrin.gif
Go to the top of the page
+Quote Post
domis86
post 5.05.2007, 17:18:17
Post #7





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
wSBk
post 11.05.2007, 12:53:58
Post #8





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 13.04.2007

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


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?
Go to the top of the page
+Quote Post
pbnan
post 11.05.2007, 14:08:53
Post #9





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


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


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post

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: 18.07.2025 - 04:04