Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] galeria
Forum PHP.pl > Forum > Przedszkole
_bezimienny
Napotkałem się na pewną przeszkodę podczas tworzenia skrytpu galierii.
  1. <?
  2. $lokalizacja="folder";
  3. $dir=opendir("$lokalizacja/male/"); 
  4. $b=0;
  5. while($plik=readdir($dir)){
  6. if($plik!="." && $plik!=".." && $plik!="Thumbs.db"){
  7. $b++;
  8. $sciezka="$lokalizacja/$plik";
  9. $sciezkamale="$lokalizacja/male/$plik"; 
  10. list($width, $height, $type, $attr) = getimagesize("$sciezka");
  11. echo "<img vspace=\"1\" hspace=\"1\" src=$sciezkamale onClick=\"window.open('$sciezka','okienko','scrollbars=no, status=no, toolbar=no, location=no, directories=no, width=$width,
     height=$height, left=100, top=100');\">"
    ; 
  12. if ($b%4==0){echo "<br>";}
  13.  
  14. }
  15. } 
  16.  
  17. ?>

Galeria działa na zasadzie czytania plik z folderu. I tutaj mam problem. Czyta mi wszystkie plik, które są w folderze a nie tylko jpg czy png. Byłbym wdzięczny jakby ktoś mi powiedział co z tym zrobić. Z góry thx.
tuner
  1. <?php
  2. if(ereg(".png$|.jpg$|.jpeg$", strtolower($File)))
  3. {
  4. // OK
  5. }
  6.  
  7. ?>
_bezimienny
serdeczne dzięki! o to mi chodziło!
pozdr
Bastion
warto tez sprawdzac czy taki plik pomimo rozszerzenia na pewno jest plikiem graficznym, a nie tylko ze ma takie rozszerzenie
_bezimienny
chodzi ci o funkcję IMAGETYPE :?:
Kahir
Witam,
chodzi o funkcje getimagesize(), przykład:
  1. <?php
  2. $imgSize = getimagesize('obrazek.jpg');
  3. $mimeType = $imgSize['mime']; // type MIME obrazka
  4. ?>
_bezimienny
nie rozumiem trzeciej lini :/
Kahir
Funkcja getimagesize() zwraca tablicę, w której przechowywany jest między innymi typ MIME obrazka (image/jpeg, image/png, itd). Wartość ta jest przechowywana pod kluczem 'mime', czyli
  1. <?php
  2.  $mimeType = $imgSize['mime'];
  3. ?>
Mam nadzięję, żę w marę jasno to wytłumaczyłem.
Następnie sprawdzasz czy $mimeType == image/jpeg || image/png || ...
_bezimienny
Może wytłumaczone to jest jasno, ale nie wiem gdzie to mam wsadzić. Ciągle zwraca mi błędy :/

Utworzyłem plik txt i zamieniłem jego rozszerzenie na jpg w celu sprawdzenia, ale wyrzuca mi taki błąd:
Cytat
Warning: getimagesize: Unable to open 'new.jpg' for reading. in c:\phpdev5\www\proba\gallery.php on line 11


Umieszczam jeszcze raz cały kod z poprawkami:
  1. <?
  2. $lokalizacja="folder";
  3. $dir=opendir("$lokalizacja/male/");
  4. $b=0;  
  5. while($plik=readdir($dir)){
  6. if(ereg(".png$|.jpg$|.jpeg$", strtolower($plik))){
  7. $b++;
  8. $sciezka="$lokalizacja/$plik";
  9. $sciezkamale="$lokalizacja/male/$plik"; 
  10. list($width, $height, $type, $attr) = getimagesize($sciezka);
  11. $imgSize = getimagesize($sciezka);
  12. $mimeType = $imgSize['mime'];
  13. if ($mimeType == jpeg || png){
  14. echo "<img  vspace=\"1\" hspace=\"1\" src=$sciezkamale onClick=\"window.open('$sciezka','okienko','scrollbars=no, status=no, toolbar=no, location=no, directories=no, width=$width,
     height=$height, left=100, top=100');\">"
    ; 
  15. if ($b%4==0){echo "<br>";}
  16. }
  17. }
  18. } 
  19. ?>
bigZbig
Zamiast
  1. <?php if ($mimeType == jpeg || png) ?>
daj
  1. <?php if ($mimeType == 'image/jpeg' || $mimeType == 'image/png') ?>
_bezimienny
efekt jest ten sam... Chociaż przedtem wyświetlało mi również pozostałe pliki, które są zdjęciami. Teraz wyświetla mi tylko ten komunikat.

Coś mu się nie podoba w tym fragmencie:
  1. <?php
  2. list($width, $height, $type, $attr) = getimagesize($sciezka);
  3. $imgSize = getimagesize($sciezka);
  4. ?>
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.