Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Prosty skrypt "aktualnosci"
Forum PHP.pl > Forum > Przedszkole
renderman
Witam,

Natknąłem się już bardzo dawno temu na całkiem sympatyczny skrypt który pozwolił mi wyświetlac obrazki w galeri czytając w nim kolejno obrazki według rozszerzeńi ukladajac je w jednej kolumnie.

Projektując swoją stronę staram się puki co ograniczac do minimum koniecznosc łaczenia z bazą danych... wiec wpadłem by tworząc skrypt "aktualnosci" na stronie posłużyc sie w zasadzie takim samym rozwiązaniem... problem polega tylko na tym że gdy przekształcam sobie ten skrypt mam problem z funkcją.....

  1. <?php
  2. echo '<a target="_blank" href="aktualnosci/'.$plik.'"><img src="aktualnosci/mini/' . $plik . '" class="galeria" /></a>';
  3. ?>


chciałbym to zamienic na

  1. echo <div id="mojStyl"><?php include( $file ); ?></div>


już pogubiłem się jak to zapisac gdyż w jednym miejscu chce przywolac 2x kod php.
pierwszy raz jako głowny a drugi raz jako wstawiony w kod html....

  1. <?php
  2.  
  3. $rozszerzenia = Array("jpg", "png", "gif");
  4. $i = 0;
  5. $odczytaj = opendir('aktualnosci');
  6. while ( $plik = readdir( $odczytaj ) )
  7. {
  8.  
  9. $sciezka = pathinfo( 'aktualnosci/' . $plik );
  10. if (in_array( $sciezka['extension'], $rozszerzenia ) )
  11. {
  12.  
  13. echo '<a target="_blank" href="aktualnosci/'.$plik.'"><img src="aktualnosci/mini/' . $plik . '" class="galeria" /></a>';
  14. $i++;
  15.  if ($i % 1 == 0) echo '<br />';
  16. }
  17.  
  18. }
  19. closedir($odczytaj);
  20. ?>


Nie wiem czy do końca ten skrypt jest poprawny bo chciałbym odczytywac np pliki o rozszerzeniu nie php a np .txt ale to zmieniam w array...

Może znacie jakieś inne lepsze rozwiązanie na stworzenie skryptu który zwyczajnie będzie czytał kolejne pliki z jednego katalogu i dołaczał je od np najstarszego do najnowszego datą , albo chociaz nazwą 0001,, 0002 ,, 0003 chociaż lepiej bylo by to zrobic uwzględniajac date modyfikacji... ale tak by nie dało się czegoś zaincludowac z zewnątrz...
v1t4n
Cos takiego (nie gwarantuje ze bedzie to dzialac - podalem jak podmienic jedno echo na drugie):

  1. <?php
  2. $rozszerzenia = Array("jpg", "png", "gif");
  3. $i = 0;
  4. $odczytaj = opendir('aktualnosci');
  5. while ( $plik = readdir( $odczytaj ) )
  6. {
  7.  
  8. $sciezka = pathinfo( 'aktualnosci/' . $plik );
  9. if (in_array( $sciezka['extension'], $rozszerzenia ) )
  10. {
  11.  
  12. echo '<div id="mojStyl">';
  13. include( $file );
  14. echo '</div>';
  15. $i++;
  16.  if ($i % 1 == 0) echo '<br />';
  17. }
  18.  
  19. }
  20. closedir($odczytaj);
  21. ?>
renderman
Wpadłem na to dosłownie chwile przed Twoim postem.....
  1. <?php
  2.  
  3. $rozszerzenia = Array("txt");
  4. $i = 0;
  5. $z = opendir('aktualnosci');
  6. while ( $file = readdir( $z ) )
  7. {
  8.  
  9. $parts = pathinfo( 'aktualnosci/' . $file );
  10. if (in_array( $parts['extension'], $rozszerzenia ) )
  11. {
  12.  
  13.  
  14. echo '<div id="mojStyl">';
  15.  
  16. include ('aktualnosci/ . $file');
  17. echo '</div>';
  18.  
  19. $i++;
  20.  if ($i % 5 == 0) echo '<br />';
  21. }
  22.  
  23. }
  24. closedir($z);
  25. ?>


Kod przechodzi .. ładuje sie poprawnie cała funkcja ale w rezultacie otrzymuje tylko

  1. <div id="mojStyl"></div><div id="mojStyl"></div></p>


gdy zamiast include wpisze echo aktualnosci $ file dostaje listing plików

Kod
plik1.txt
plik2.txt


wiec wnioskuje ze cały skrpyt dziala poprawnie do momentu include... .. sad.gif

Nie mogłem dopisac poprawnie do poprzedniego postu wiec napisze to jeszcze raz


  1. <?php
  2. echo 'aktualnosci/' . $file;
  3. ?>

zwraca mi

  1. <div id="mojStyl">aktualnosci/1.txt</div><div id="mojStyl">aktualnosci/2.txt</div></p>


więc poprawnie...
teraz tylko jak zaincludowac kazdy plik


Dodane po 5 min biggrin.gif..

Czeski bład winksmiley.jpg prawdopodpbnie niepotrzebnie wczesniej zamykałem przy include wszystko w nawiasy teraz dziala ...

Działający kod wygląda następująco ....

  1. <?php
  2.  
  3. $rozszerzenia = Array("txt");
  4. $i = 0;
  5. $z = opendir('aktualnosci');
  6. while ( $file = readdir( $z ) )
  7. {
  8.  
  9. $parts = pathinfo( 'aktualnosci/' . $file );
  10. if (in_array( $parts['extension'], $rozszerzenia ) )
  11. {
  12.  
  13.  
  14. echo '<div id="mojStyl">';
  15.  
  16. /* include ('aktualnosci/ . $file'); */
  17. include 'aktualnosci/' . $file;
  18.  
  19. echo '</div>';
  20.  
  21. $i++;
  22.  if ($i % 5 == 0) echo '<br />';
  23. }
  24.  
  25. }
  26. closedir($z);
  27. ?>


tak celem wyjaśnienia.. jaką funkcje ma ". " tóż przed $file ? czy to jest kropka rozszerzenia...? bo nie do konca rozumiem sens jej istnienia..

Generalnie bylo by wszystko ok... Z tym że pliki tekstowe ładują się w kolejnosci 0001.txt 0002.txt 0003.txt itd...
Czyli wyświetlając to wszystko w postaci przetworzonego skryptu dostaje
.1
.2
.3

Teoretycznie mogłbym nazywac każdego posta od konca zaczynajac np 10000000.txt 09999999.txt 09999998.txt ale może dało by się to inaczej jakoś zrobic ? jakiś pomysł ? Albo uwzględniajac date albo odwracajac kolejnosc ale zupełnie nie mam pojęcia jak to odwrócic...
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.