Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyswietlanie zdjec z katalogu
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam. Wlasnie pracuje nad taka prosta galeria zdjec na strone. Zrobilem narazie wypisywanie katalogow z danego folderu i kazdy z nich jest linkiem. Wyglada to tak narazie:
  1. <?php
  2. $dir = 'zdjecia';
  3. $array = scandir($dir, 0);
  4. foreach ($array as $files)
  5. {
  6. if ( $files != '.' && $files != '..' )
  7. {
  8.  echo "<a href=".$files.">$files</a><br />";
  9. }
  10. }
  11. ?>

I teraz chcialbym aby po kliknieciu na ktorys z wynikow wyskakiwaly mi obrazki w nim zawarte. Narazie bez formatowania i wygladu. Jaka funkcje musze wykorzystac lub ewentualnie jakas podpowiedz jak sie za to zabrac. Pozdrawiam, Łukasz.
mrjozo
  1. <?php
  2. $dir = 'zdjecia';
  3. $array = scandir($dir, 0);
  4. foreach ($array as $files)
  5. {
  6. if ( $files != '.' && $files != '..' )
  7. {
  8.  echo "<a href="zdjecia.php?folder=$files">$files</a><br />";
  9. }
  10. }
  11. ?>


zdjecia.php
  1. <?php 
  2. $dir = $_GET['folder'];
  3.  
  4. if ($handle = opendir($dir)) {
  5. while (false !== ($file = readdir($handle))) { 
  6. if ($file != "." && $file != "..") { 
  7. echo "<img src="$file" />n"; 
  8. } 
  9. }
  10. closedir($handle); 
  11. }
  12. ?>


http://pl2.php.net/manual/pl/function.readdir.php
lukash82
Witam ponownie. Dzieki za rozwiazanie. Wyglada dobrze ale niestety wywala mi blad typu:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in c:\usr\krasnal\www\probne\probne.php on line 8

i nie bardzo wiem o co mu chodzi bo bledu nie widze w tej linijce...:/
mrjozo
  1. <?php
  2. $dir = 'zdjecia';
  3. $array = scandir($dir, 0);
  4. foreach ($array as $files)
  5. {
  6. if ( $files != '.' && $files != '..' )
  7. {
  8.  echo "<a href="zdjecia.php?folder=$files">$files</a><br />";
  9. }
  10. }
  11. ?>
lukash82
Dzieki mrjozo za cierpliwosc i pomoc ale jakzawsze mam pod gorke i kolejny blad. Tym razem w pliku zdjecia.php Wywala mi taki blad:


Warning: opendir(111) [function.opendir]: failed to open dir: Invalid argument in c:\usr\krasnal\www\probne\zdjecia.php on line 4

Zdjecia w tym katalogu sa ale z tego co rozumiem komunikat dotyczy klopotow z otwarciem tego katalogu...
mrjozo
Sprawdź jaki folder otwierasz:

  1. <?php
  2. $dir = $_GET['folder'];
  3.  
  4. echo $dir; // jaki folder
  5. if ($handle = opendir('zdjecia/'.$dir)) { // , jesli foto masz w folderze zdjecia to do dir trzeba to dodac 
  6.  
  7. while (false !== ($file = readdir($handle))) { 
  8. if ($file != "." && $file != "..") { 
  9. echo "<img src="$file" />n"; 
  10. } 
  11. }
  12. closedir($handle); 
  13. }
  14. ?>
lukash82
Witam. Dalej mam problem z ta galeria. Nie wiem czemu po wybraniu katalogu ze zdjeciami nie chce mi ich wyswietlac. Tzn. tak jakby nie wchodzil do wybranego wczesniej katalogu tylko zostaje na tym samym poziomie. Cos jest chyba nie tak ze sciezkami dostepu ale juz probowalem chyba wszystkich kombinacji i dalej nie dziala:/ Po zmianach kod w pliku galeria wyglada tak:
  1. <?php
  2. $dir = 'zdjecia';
  3. $array = scandir($dir, 0);
  4. foreach ($array as $files)
  5. {
  6. if ( $files != '.' && $files != '..' )
  7. {
  8.  echo "<a href="zdjecia.php?folder=$files">$files</a><br />";
  9. }
  10. }
  11. ?>

a wyswietlanie zdjec tak:
  1. <?php 
  2. $dir = $_POST['folder'];
  3.  
  4. if ($katalog = opendir('zdjecia/'.$dir)) {
  5. while (false !== ($file = readdir($katalog))) { 
  6. if ($file != "." && $file != "..") { ?>
  7. <img src='<?php echo "$file.jpg"; ?>'>
  8. <?php
  9. } 
  10. }
  11. closedir($katalog); 
  12. }
  13. ?>

Moze ktos z Was znajdzie jakis blad w tym bo mi pomysly sie juz skonczyly:/ Pewnie jest to cos drobnego...:/ Pozdrawiam.
mrjozo
Po pierwsze wysyłasz getem, więc tutaj ma byc
  1. <?php
  2. $dir = $_GET['folder'];
  3. $dir = 'zdjecia/'.$dir;
  4. ?>

pozatym tak jak mówiłem sprawdź jaki folder otwierasz:

echo $dir; // jaki folder i jesli masz błędy to napisz jaki błąd bo trudno wywróżyć co Ci nie działa
lukash82
Ok. Znalazlem blad w sciezce i teraz juz wchodzi do odpowiedniego katalogu. Tylko zamiast obrazkow wyswietla takie standardowe kwadraty, tak jakby nie umial pobrac obrazkow. Jak sprawdzam wlasciwosci tech kwadratow to wskazuja dobra sciezke z odpowiednim rozszerzeniem. Czy trzeba jeszcze cos tam dolozyc w kodzie?
Teraz to wyglada tak:
  1. <?php 
  2. $dir = $_GET['folder'];
  3. if ($katalog = opendir('zdjecia/'.$dir.'/')) {
  4. while (false !== ($file = readdir($katalog))) { 
  5. if ($file != "." && $file != "..") { 
  6. echo "<img src=$dir/$file>";
  7. } 
  8. }
  9. closedir($katalog); 
  10. }
  11. ?>
mrjozo
Coś misie wydaje, że jednak z tą ścieżką do obrazka coś nie tak... czy nie powienieneś tutaj mieć:
  1. <?php
  2. echo "<img src="zdjecia/$dir/$file">";
  3. ?>


Jesli wkleisz sciezke obrazka do paska adresu http://strona.pl/sciezka/do/obrazka/plik.jpg to powinien on sie otworzyc, jesli nie to cos ze sciezka nie tak
lukash82
Ok, teraz juz dziala. Zle szukalem bo pokazywalo mi plik, to znaczy ten kwadracik jaki sie pojawia standardowo przy wolnym laczu zanim przegladarka pobierze dany obrazek i myslalem, ze sciezka jest dobra. Teraz mam nadzieje, ze poleci juz z gorki, hehe. Dzieki mrozjo za cierpliwosc i pomoc. Pozdrawiam.
mike
W sumie problem rozwiązany i na dodatek wyjdzie że spamuję ale nie mogę patrzeć jak tkwicie w PHP4.
Poczytajcie jakie mechanizmy daje nam PHP5 w kwestii listowania folderów: Iteratory w PHP, czyli stare nowe SPL :: Lista plików w folderze
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.