ďťż

[PHP] Prosty system newsów Co zrobić, żeby były pobierane "od końca"?

       

Podstrony


telcocafe

Witam wszystkich, mam następujący kod:

<?php $dir = "miniatury/"; $open = opendir($dir); while (false !== ($files = readdir($open))) { if (eregi(".(txt)$",$files)) include("$dir$files"); } closedir($open); ?>

Jest to banalny system newsów (jeśli można to tak nazwać), pobierający je z plików tekstowych z katalogu miniatury (przy okazji, kod znaleziony przeze mnie jakiś czas temu - sam go nie napisałem). Swego czasu zdażyło mi się napisać coś niecoś w PHP, jednak to było na tyle dawno, że juz wszystko w zasadzie zapomniałem (no, ok - wiem jeszcze do czego "echo" służy ;) ).

W folderze miniatury są tekstowe pliki z newsami, ponumerowane od 1 aż do powiedzmy 1000. Moje pytanie brzmi: co musiałbym zrobić (pomijając zmianę nazw plików), żeby newsy wyświetlały się "od końca", czyli od 1000 do 1? Chodzi mi ogólnie o to, żeby nowsze, w moim przypadku, wpisy były na górze, bo w obecnym przypadku lądują na samym dole strony.

Z góry dziękuję za odpowiedź.
Użytkownik izdwuut edytował ten post 20 styczeń 2008, 13:55


$arr=glob('miniatury/*.txt'); $arr=array_reverse($arr); for($i=0; $i<5; $i++) { $plik=$arr[$i]; // dalszy kod wyswietlajacy } // lub $arr=glob('miniatury/*.txt'); for($i=count($arr); $i>count($arr)-5; $i--) { $plik=$arr[$i]; // dalszy kod wyswietlajacy }

Gdzie 5 w obu przypadkach jest liczba newsow na stronie.
Użytkownik polasek edytował ten post 20 styczeń 2008, 13:59
Spróbowałem zrobić to tak, jak napisałeś i mówiąc krótko, nie wyświetla się nic, lub też wyświetla się w złej kolejności (zależy jak wklejałem kod). Nie wiem tylko, czy to ja coś robię źle czy kod jest zły (chociaż szczerze stawiałbym na to pierwsze ;) ).

Widzę, też, że ten kod wprowadza kilka zasadniczych zmian, pętla for zamiast while, możliwość ustawienia, ile newsów będzie wyświetlanych (funkcja zupełnie mi nie potrzebna, muszę przyznać). A jakby tak spróbować zrobić coś bardziej na podstawie tego kodu, który podesłałem w pierwszym poście (o ile to możliwe)? Lub też podsunąć mi jakieś sugestie co do zmiany ów kodu, bo wcale nie wykluczone, że to ja coś źle robie.
Użytkownik izdwuut edytował ten post 20 styczeń 2008, 14:44
Pokaż jak wstawiłeś mój kod.

$arr=glob('miniatury/*.txt'); $arr=array_reverse($arr); foreach($arr as $plik) { include($plik); }
To wszystko...
Użytkownik polasek edytował ten post 20 styczeń 2008, 15:22


<?php $arr=glob('miniatury/*.txt'); $arr=array_reverse($arr); for($i=0; $i<5; $i++) { $plik=$arr[$i]; $dir = "miniatury/"; $open = opendir($dir); while (false !== ($files = readdir($open))) { if (eregi(".(txt)$",$files)) include("$dir$files"); } closedir($open); } ?>
To była jedna z kombinacji i chyba najbardziej słuszna, bo tak to właśnie wywnioskowałem z twojej wypowiedzi, jednak przy czymś takim raz, że nie wyświetla się w kolejności to jeszcze wyświetla się łącznie dziesięć razy (mimo, że w folderze są dwa pliki) - z tego co zauważyłem, żeby wyświetliło się w miarę poprawie (oprócz tej kolejności) trzeba w pętli zmienić "<5" na "<1", jednak nie wiem czy słusznie rozumuje.

*EDiT:
No, to wszystko wyjaśnia, w zasadzie ;) . Z tego co widzę, to wszystko wyświetla się tak, jak chciałem. Dziękuję za pomoc.
Użytkownik izdwuut edytował ten post 20 styczeń 2008, 15:27
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.