Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Dokuwiki i zliczanie plików w katalogu - automatyczna aktualizacja
ElNinho
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 27.06.2016

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


Witam wszystkich! Zarejestrowałem się bo mam problem i liczę, że tu znajdę jakąś pomoc.
Prowadzę stronę encyklopedii piwa ( http://beer-o-pedia.lasypolskie.pl/doku.php ) opartą na Dokuwiki w wersji "Adora Belle" z 13-10-2012 (od razu zaznaczam, że nie mogę jej uaktualnić do najnowszej wersji, bo "rozjedzie mi się szablon, który został dostosowany pod tą wersję).
Ale przejdźmy do problemu.
Miałem na stronie licznik, który podawał ile jest stron z opisami w poszczególnych kategoriach (Piwa, Piwa domowe, Inne) ale musiałem go aktualizować ręcznie po każdej zmianie zawartości. Pomyślałem, że ilość plików w katalogu mógłby zliczać skrypt i taki skrypt znalazłem:
  1. //ścieżka do katalogu
  2. $sciezka = 'nazwa_katalogu';
  3.  
  4. //ustawienie domyślnej wartości licznika plików
  5. $licznikPlikow = 0;
  6.  
  7. //otwarcie katalogu
  8. $katalog = opendir($sciezka);
  9.  
  10. //przejście po elementach katalogu
  11. while($plik = readdir($katalog))
  12. {
  13. //weryfikacja czy rzeczywiście dany element to plik
  14. if ($plik<>'.' && $plik<>'..' && !is_dir($sciezka.$plik))
  15. {
  16. //zwiększenie licznika plików
  17. $licznikPlikow++;
  18. }
  19. }
  20.  
  21. //zamknięcie katalogu
  22. closedir($katalog);
  23.  
  24. //wyświetlenie komunikatu
  25. echo 'W katalogu znaleziono '.$licznikPlikow.' plików';
Po dostosowaniu do moich potrzeb skrypt wygląda tak:
  1. $sciezka = 'data/pages/encyklopedia/piwa';
  2. $licznikPiwa = 0;
  3. $katalog = opendir($sciezka);
  4. while($plik = readdir($katalog))
  5. {
  6. if ($plik<>'.' && $plik<>'..' && !is_dir($sciezka.$plik))
  7. {
  8. $licznikPiwa++;
  9. }
  10. }
  11. closedir($katalog);
  12. echo 'Piwa: ',$licznikPiwa,' - ';
  13.  
  14. $sciezka = 'data/pages/encyklopedia/domowe';
  15. $licznikDomowe = 0;
  16. $katalog = opendir($sciezka);
  17. while($plik = readdir($katalog))
  18. {
  19. if ($plik<>'.' && $plik<>'..' && !is_dir($sciezka.$plik))
  20. {
  21. $licznikDomowe++;
  22. }
  23. }
  24. closedir($katalog);
  25. echo 'Piwa domowe: ',$licznikDomowe,' - ';
  26.  
  27. $sciezka = 'data/pages/encyklopedia/inne';
  28. $licznikInne = 0;
  29. $katalog = opendir($sciezka);
  30. while($plik = readdir($katalog))
  31. {
  32. if ($plik<>'.' && $plik<>'..' && !is_dir($sciezka.$plik))
  33. {
  34. $licznikInne++;
  35. }
  36. }
  37. closedir($katalog);
  38. echo 'Cydry, radlery, inne: ',$licznikInne,'.<br />';
  39.  
  40. $suma = $licznikPiwa + $licznikDomowe + $licznikInne;
  41. echo 'Wpisów w „Beer-o-pedii” jest już ',$suma,'!';
Skrypt działa i wyświetla to o co mi chodzi:


Jak jednak spowodować, aby wartości aktualizowały się automatycznie po każdej zmianie zawartości dowolnego ze zliczanych katalogów?
Go to the top of the page
+Quote Post
c3409394
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 4
Dołączył: 3.06.2016

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


najprossze rozwiazania to ustawic tzw. 'crona' czyli mechanizm ktory bedzie co pewna ustalona partie czasu odpalal skrypt php
brzydkie rozwiazanie: to wplesc gdzies ten kod przy odwiedzaniu stron.

tak btw. jak pewnie widzisz do wszystkich katalogow powtarza ci sie funkcjonalnosc kodu - sprobuj go troche zoptymalizowac smile.gif

Ten post edytował c3409394 27.06.2016, 10:51:11
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 Aktualny czas: 21.08.2025 - 12:36