[PHP] Losowe zdjęcie wraz z odnośnikiem


(Krzysztofik Czest) #1

Witam!

Wiem że to temat wałkowany od dawna, ale po przejrzeniu forum nie znalazłem rozwiązania które chciałbym zastosować. Temat jest banalny losowe zdjęcie. Ale chce by skrypt losował zdjęcie z folderu np zdjecia w którym są inne foldera dopiero tam znajdują się pliki jpg. Ponadto chciałbym by skrypt oprócz losowego zdjęcia umożliwiał również przejście do zdjęcia o dużych rozmiarach. Duże zdjęcia jak i miniatury (poprzedzone thumb_) znajdują się w jednym folderze.

Mam taki kod:

<?php

$duze = 'zdjecia';

$rdi=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($duze));


$tab=array();

foreach($rdi as $file) {

$plik=$file->getPathname();

if(ereg("(.jpg|.jpeg|.gif|.png){1}$",$plik)) array_push($tab,$plik);

}

shuffle($tab);



if(count($tab)<1) echo 'Katalog Jest Pusty';

else

echo '

';

?>[/code]

Ma ktoś pomysł jak zmodyfikować kod by w ścieżka do podkatalogu była taka jak w tylko przed nazwą pliku wstawić thumb_ ?


([alex]) #2

$tmp=explode('/',$tab[0]);

$last=count($tmp)-1;

$tmp[$last]='thumb_'.$tmp[$last];

$tmp=implode('/',$tmp);


(Krzysztofik Czest) #3

wow dzięki! :slight_smile:

ale nie będę ukrywał że z php jestem noga dlatego zwracam się o pomoc i chciałem jeszcze zapytać czy dałoby radę zrobić tak dla więcej niż jednego zdjęcia? Np dla trzech?

<?php

$duze = 'zdjecia';

$rdi=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($duze));


$tab=array();

foreach($rdi as $file) {

$plik=$file->getPathname();

if(ereg("(.jpg|.jpeg|.gif|.png){1}$",$plik)) array_push($tab,$plik);

}

shuffle($tab);



if(count($tab)<1) echo 'Katalog Jest Pusty';

else

echo '



';

?>[/code]

([alex]) #4

else

{

foreach($tab as $img)

{

$tmp=explode('/',$img);

$last=count($tmp)-1;

$tmp[$last]='thumb_'.$tmp[$last];

echo ' '.$img.'

}

}


(Krzysztofik Czest) #5

Przepraszam że tak truję, ale wystąpiły problemy których się nie spodziewałem i (co mnie nie dziwi) nie potrafię sobie poradzić...

Po pierwsze nie wiem gdzie w powyższym kodzie zadeklarować ilość wyświetlanych zdjeć (teraz wyświetlają się wszystkie) i po drugie

wstyd się przyznać ale nie przewidzałem że kod do losowania zdjeć z katalogów będzie też losował minitury i dochodzi do sytuacji że thumb_nazwazdjecia.jpg jest poprzedzony kolejnym tj. thumb_thumb_nazwazjdecia.jpg. Gdzie i jakie ograniczenie można wstawić by kod przy losowaniu omijam pliki poprzedzone thumb_

Z góry dziękuje za pomoc


([alex]) #6

Weź poczytaj jakiś pierwszy lepszy kurs php.


(Krzysztofik Czest) #7

Gdybym potrafił to zrobić z pomocą literatury nie pisałbym tu... Proszę o ostantnią przysługę związaną z losowaniem zdjęć z wyjątkiem thumb_nazwazdjecia.jpg.


(Ryan) #8

Z potrafieniem nie jest tak, że czytasz książkę/tutka i nagle znasz odpowiedź na każdy problem. To czego oczekujesz, nie będzie w ogóle kształcące i ciężko to nazwać pomocą w programowaniu. To temat z cyklu "zróbcie za mnie". Spoko, ale nazwij rzecz po imieniu: mam w nosie naukę programowania i potrzebuję konkretnego skryptu. Tylko że w takiej sytuacji to nie ten dział...


(Krzysztofik Czest) #9

Spoko nikogo do niczego nie zmuszam, a jedynie zwróciłem się z prośbą o pomoc bo to chyba odpowiednie miejsce, prawda? Męczę się z tym parę dni, próbuje, czytam, nie wychodzi... Co jest złego w tym że szukam pomocy i tego 'elementu' którego mi brakuje? Chcecie pomóc, to pomóżcie jeśli nie to szkoda, ale dziękuje alex za wcześniejsze posty.