Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przeglądarka plików graficznych
Forum PHP.pl > Forum > Przedszkole
shreker
Mam problem ze skryptem. Obecnie skrypt poniżej wyświetla wszystkie obrazki z zadanego katalogu "image/". Chodzi o to aby przerobić go, aby wyświetlał obrazki tylko o rozszerzeniu *.jpg i *.gif oraz o ile to możliwe o wielkości powyżej 502x376px. Jeżeli obrazek nie będzie spełniał tych kryteriów ma nie być wyświetlany. Proszę o pomoc, moze ktoś wie jak to zrobić ? :-) Niestety jestem początkujący w php i nie bardzo wiem jak jak go praktycznie przerobić. Z góry dzięki. Komuś będę wisiał browara :-)

Kod
<?php
// Określamy katalog w którym znajdują się zdjęcia.
$katalog='image/';
// Inicjujemy zmienne pomocnicze.
$d=dir($katalog);
$x=0;
/*
Czytamy nazwy wszystkich plików z katalogu zdjęć
i umieszczamy je kolejno w tablicy $album.
Wczytane nazwy bedą się teraz znajdować kolejno
w $album[0], $album[1], ...
*/
while (false !==($plik=$d->read()))
     {
         if ($plik !='.' && $plik !='..') $album[$x++]=$plik;
     }
// Losujemy liczbę z zakresu od 0 do 'liczby wczytanych zdjęć'...
$x=rand(0,count($album));
// ...a następnie odczytujemy nazwę z tablicy zdjęć i przypisujemy $fotka.
$fotka=$album[$x];
/*
Teraz zostało już tylko wyświetlić losowo wybrana fotografię.
Zmienna: $katalog.$fotka będzie zawierać pełą ścieżkę dostępu do pliku.
Przy pomocy stylów css, na sztywno został określony rozmiar ramki
oraz wielkości obrazka. Parametry te należy dostosować do własnych potrzeb.
*/
echo '
<table style="border: 0px dashed black">
<tr>
<td>
<img src="'.$katalog.$fotka.'" style="border: 1px solid black; width: 502px; height:376px">
</td>
</tr>
</table>';
?>
mls
  1. <?php
  2. while (false !==($plik=$d->read())) 
  3. {
  4. if ($plik != '.' && $plik != '..' && preg_match('/.(jpg|jpeg|gif)$/i', $plik))
  5. {
  6. $_imginfo = getimagesize($katalog . $plik);
  7. if ($_imginfo[0] >= 502 && $_imginfo[1] >= 376)
  8. $album[] = $plik;
  9. }
  10. }
  11. ?>
shreker
Czyli po zmianach powinno to wyglądać tak, o ile dobrze zrozumiałem !?

Kod
<?php
// Określamy katalog w którym znajdują się zdjęcia.
$katalog='image/';
// Inicjujemy zmienne pomocnicze.
$d=dir($katalog);
$x=0;
/*
Czytamy nazwy wszystkich plików z katalogu zdjęć
i umieszczamy je kolejno w tablicy $album.
Wczytane nazwy bedą się teraz znajdować kolejno
w $album[0], $album[1], ...
*/
while (false !==($plik=$d->read()))
{
    if ($plik != '.' && $plik != '..' && preg_match('/\.(jpg|jpeg|gif)$/i', $plik))
    {
        $_imginfo = getimagesize($katalog . $plik);
        if ($_imginfo[0] >= 502 && $_imginfo[1] >= 376)
            $album[] = $plik;
    }
}
// Losujemy liczbę z zakresu od 0 do 'liczby wczytanych zdjęć'...
$x=rand(0,count($album));
// ...a następnie odczytujemy nazwę z tablicy zdjęć i przypisujemy $fotka.
$fotka=$album[$x];
/*
Teraz zostało już tylko wyświetlić losowo wybrana fotografię.
Zmienna: $katalog.$fotka będzie zawierać pełą ścieżkę dostępu do pliku.
Przy pomocy stylów css, na sztywno został określony rozmiar ramki
oraz wielkości obrazka. Parametry te należy dostosować do własnych potrzeb.
*/
echo '
<table style="border: 0px dashed black">
<tr>
<td>
<img src="'.$katalog.$fotka.'" style="border: 1px solid black; width: 502px; height:376px">
</td>
</tr>
</table>';
?>
mls
Dokładnie tak.
shreker
Dzięki serdeczne za pomoc w sprawie przerobienia skryptu. Oczywiście działa, tylko jest jeden problem, mianowicie, o ile dobrze zrozumiałem budowę skryptu, brakuje w nim "zapetlenia". Chodzi o to że jeżeli wrzucę do zadanego katalogu ze zdjęciami jakieś zdjęcie nieodpowiadające wymogom to mimo wszystko skrypt bierze je również pod uwagę, podczas losowania - co skutkuje wyświetleniem samej ramki bez zdjęcia. Mam prośbę czy dało by się zrobić coś takiego że jeżeli skrypt natrafi na takie zdjęcie/zdjęcia to pomijałby je i brał pod uwagę podczas losowania, ewentualnie budowania tablicy tylko zdjęcia spełniające określone wymogi ? Podejrzewam że trzeba najlepiej coś takiego umieścić w momencie jak jest budowana tablica, na podstawie której pozniej są losowane zdjęcia. Jednak nie bardzo wiem niestety jak to zrobić. Proszę więc o pomoc. Z góry dzięki, jak tak dalej pójdzie to dojdziemy do zgrzewki browarów exclamation.gif!!! :-)
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.