Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Losowe zdjęcie
febien
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


Witam

Przeszukałem juz chyba całe google - ale i tak nie mogę rozwiązac nastepującego problemu - chce zamieścic skrypt wyświetlający na mojej stronie losowe zdjęcie - lecz żaden do końca mnie nie satysfakcjonuje ( posiadam CMS'a jPORTAL 2 wszystkie zdjęcia są w folderze /uploads/galery/ - miniaturki poprzedzone są literą m - natomiast oryginalne zdjecia są numerowane od 1 do 430 )

Oto moim zdaniem dwa najprzydatniejsze :

  1. <?php
  2. $images = 430;
  3. $path = "uploads/galery/m";
  4. $random = rand(1,$images);
  5. echo "<img src=$path"."$random".".jpg".">"
  6. ?>


Ad1 Wszystko mi w nim pasuje - tylko co jeszcze dopisać by oprócz jpg obsługiwał jeszcze inne formaty ( png gif JPG jpeg ) questionmark.gif
Ad2 - Czy da się zrobić by po kliknieciu w miniaturke ( np .../galery/m100 - wyświetlało jej duży odpowiednik questionmark.gif ( 100.jpg )


Drugi skrypt -
  1. <?php
  2.  
  3.  
  4. /*
  5. Jezeli chcesz wykorzystać skypt zachowaj ten komentarz
  6. autor skryptu - Pawel Bryndza;
  7. kontakt- pawel1-81@o2.pl
  8. */
  9.  
  10.  
  11.  /* katalogiem domyślnym jest "galeria" */
  12. $sciezka_do_katalogu = 'uploads/galery/';
  13.  
  14. $n=0;
  15. if(@$d = opendir($sciezka_do_katalogu)){
  16.  
  17. while (!(($plik = readdir($d)) === false)) {
  18. if(stristr($plik, '.jpg') or stristr($plik, '.jpeg') or stristr($plik, '.gif')){
  19. $n++;
  20. $losowe_zdjecie[$n] = "$plik";
  21. }
  22.  }
  23.  
  24. if(!empty($losowe_zdjecie)) {
  25.  $losowa_pozycja = array_rand($losowe_zdjecie);  
  26.  
  27.  echo "<img src=\"$sciezka_do_katalogu/$losowe_zdjecie[$losowa_pozycja]\">";
  28.  
  29.  
  30. }
  31. else echo 'Brak zdjęć';  
  32. }
  33. else echo 'Błędna ścieżka do katalogu lub katalog nie istnieje.';
  34. ?>


Ad 1 - Co dopisac by nie wyswietlało mi wszystkie fotki - lecz wyłacznie te z przedrostkiem " m " questionmark.gif
Ad 2 - I czy tak samo jak w tamtym przypadku dałoby się zrobić link od razu do dużej wersji tego zdjęcia questionmark.gif

Zalezy mi tylko na tym aby jeden z tych skryptów działał wg mojej charakterystyki , obojętnie który z nich. Jak widać jestem zielony w sprawach związanych z php - z góry dziekuje jesli ktos by mi pomógł...

Pozdrawiam
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat
Ad 1 - Co dopisac by nie wyswietlało mi wszystkie fotki - lecz wyłacznie te z przedrostkiem " m " questionmark.gif

  1. <?php
  2. if(substr($plik,1,1) == "m")
  3. return true;
  4. ?>


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
nitek
post
Post #3





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


Cytat(febien @ 29.02.2008, 12:40:20 ) *
Ad2 - Czy da się zrobić by po kliknieciu w miniaturke ( np .../galery/m100 - wyświetlało jej duży odpowiednik questionmark.gif ( 100.jpg )


Jeśli oprzesz się na drugim skrypcie, zastosujesz, to co napisał skowron-line, masz zachowaną zasadę nazywania zdjęć jak opisałeś, to możesz zrobić to w ten sposób:

  1. <?php
  2. //zakladam, że przykładowe zdjęcie nazywa się m100.jpg
  3. $duze_zdjecie=substr("m", "", $losowe_zdjecie[$losowa_pozycja])
  4. //wartosc zmiennej $duze_zdjecie, to będzie teraz 100.jpg
  5. ?>


mając taką zmienną, możesz bez problemu wygenerować link do dużego zdjęcia...

Ten post edytował nitek 29.02.2008, 16:21:08


--------------------
Go to the top of the page
+Quote Post
febien
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 29.02.2008, 14:32:44 ) *
  1. <?php
  2. if(substr($plik,1,1) == "m")
  3. return true;
  4. ?>


O ile co do drugiego posta już sam sobie znalazłem sposób w jaki zrobić link do zdjęcia z tamtą zmienną ... o tyle nie wiem w którym miejscu wkleić / zastapić ten kod żeby to chodziło tak jak było w zamierzeniu autora... wstydnis.gif ( by wyświetlało zdjęcia z przedrostkiem " m ")

Jeśli ktoś by mógł mi wskazać jak ten kod powinien wyglądac w całości z zastosowaniem tamtego warunku byłbym very wdzięczny ( Próbowałem już samemu co nieco "kombinować" lecz z mizernym skutkiem nadal mi się nie udawało sadsmiley02.gif

Ten post edytował febien 29.02.2008, 20:29:55
Go to the top of the page
+Quote Post
nitek
post
Post #5





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


dopiero zauważyłem, że @skowron-line trochę wprowadził cię w błąd. mianowicie substr liczy się już od 0, a nie od 1...


możesz nawet przerobić tego if'a (ze skryptu nr 2):

  1. <?php
  2. if((stristr($plik, '.jpg') or stristr($plik, '.jpeg') or stristr($plik, '.gif')) && substr($plik,0,1) == "m")
  3. {
  4. $n++;
  5. $losowe_zdjecie[$n] = "$plik";
  6. }
  7. ?>


wówczas tablica $losowe_zdjęcie będzie zawierać tylko nazwy tych plików, których nazwy zaczynają się od litery "m", a o to właśnie ci chodzi...


--------------------
Go to the top of the page
+Quote Post
febien
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3.  
  4. /*
  5. Jezeli chcesz wykorzystać skypt zachowaj ten komentarz
  6. autor skryptu - Pawel Bryndza;
  7. kontakt- pawel1-81@o2.pl
  8. */
  9.  
  10.  
  11.  /* katalogiem domyślnym jest "galeria" */
  12. $sciezka_do_katalogu = 'uploads/galery/';
  13. $duze_zdjecie=substr("m", "", $losowe_zdjecie[$losowa_pozycja]);
  14. $n=0;
  15. if(@$d = opendir($sciezka_do_katalogu)){
  16.  
  17. while (!(($plik = readdir($d)) === false)) {
  18. if(substr($plik,1,1) == "m")
  19. return true;
  20. if((stristr($plik, '.jpg') or stristr($plik, '.jpeg') or stristr($plik, '.gif')) && substr($plik,0,1) == "m")
  21. {
  22. $n++;
  23. $losowe_zdjecie[$n] = "$plik";
  24. }
  25.  }
  26.  
  27. if(!empty($losowe_zdjecie)) {
  28.  $losowa_pozycja = array_rand($losowe_zdjecie);  
  29.  
  30.  echo "<img src=\"$sciezka_do_katalogu/$losowe_zdjecie[$losowa_pozycja]\">";
  31.  
  32. $path = 'http://www.1g-tzn.yoyo.pl/uploads/galery/';
  33.  
  34. echo " tutaj ma byc link <a href=$path"."$duze_zdjecie".".jpg".">Link</a><br>";
  35.  
  36.  
  37. }
  38. else echo 'Brak zdjęć';  
  39. }
  40. else echo 'Błędna ścieżka do katalogu lub katalog nie istnieje.';
  41. ?>


Tak więc zastosowałem się do uwag Nitka co do tej zmiennej i niestety ona nie działa :/ - w przypadku gdy podamy tej zmiennej stałą wartość link działa bez problemu - więc jakiś bład musi być prawdopodobnie w

  1. <?php
  2. //zakladam, że przykładowe zdjęcie nazywa się m100.jpg
  3. $duze_zdjecie=substr("m", "", $losowe_zdjecie[$losowa_pozycja])
  4. //wartosc zmiennej $duze_zdjecie, to będzie teraz 100.jpg
  5. ?>


Czy ktoś i tym razem "mnie uratuje " questionmark.gif sadsmiley02.gif
Go to the top of the page
+Quote Post
nitek
post
Post #7





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


dałeś to w całkowicie złym miejscu...

kod:
  1. <?php
  2. $duze_zdjecie=substr("m", "", $losowe_zdjecie[$losowa_pozycja])
  3. ?>


daj w np. 34 linii kodu który wkleiłeś przed chwilą... wcześniej nie możesz tego robić, bo niby skąd miałbyś wcześniej zmienną $losowe_zdjecie ? blinksmiley.gif


--------------------
Go to the top of the page
+Quote Post
febien
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $duze_zdjecie =substr( $losowe_zdjecie[$losowa_pozycja] , 1);
  3. ?>


Rozwiązałem problem w ten sposób smile.gif - Dzięki wielkie za pomoc smile.gif Temat można już uznać za zakończony smile.gif
Go to the top of the page
+Quote Post
nitek
post
Post #9





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


widzisz, jak to jest, jak się pisze neraz w pośpiechu.. miało być tak:

  1. <?php
  2. $duze_zdjecie=str_replace("m", "", $losowe_zdjecie[$losowa_pozycja])
  3. ?>


zamiast subsrt.. i też by zadziałało - sorry za pomyłkę worriedsmiley.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:34