Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Losowy obrazek jako link.
jakuboss
post 14.03.2006, 23:25:13
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Witam, mam taki oto skrypt:

  1. <?
  2. #tablica zawierająca nazwy plików - obrazków
  3. $obrazki = array("a.jpg", "b.jpg", "c.jpg", "d.jpg", "e.jpg");
  4.  
  5. #inicjujemy generator licz losowych
  6. srand ((float) microtime() * 10000000);
  7.  
  8. #wybieramy jeden losowy obrazek z tablicy
  9. $obrazek = $obrazki[array_rand($obrazki)];
  10.  
  11. #wyświetlamy losowy obrazek
  12. echo "<img src=$obrazek>";
  13. ?> 


Losuje on obrazek i go wyświetla, ale zależy mi by obrazek losowany był ze wskazanego FOLDERU (a nie tak jak w skrypcie powyżej ze wskazanych plików) oraz by obrazek ten był linkiem, ale nie do obrazka.
W folderze mam obrazki, powiedzmy x1.jpg, x2.jpg i tak dalej.

Chciałbym, żeby po wylosowaniu np: x1.jpg obrazek wyświetlał się jako link do mojej strony w taki fomracie: www.mojastrona.pl/xxxxx.php=x1 (gdzie wlasnie x1 to nazwa wylosowanego obrazka, ale bez JPG).

Trochę to zamotałem, ale może ktoś pomoże. Z góry dziekuję.
Go to the top of the page
+Quote Post
bigZbig
post 15.03.2006, 09:14:21
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Moze Ci sie przyda?

  1. <?php
  2. class listDir
  3. {
  4. var $dir;
  5. var $files = array();
  6. var $handle;
  7.  
  8. function _openDir()
  9. {
  10. $this->handle = opendir($this->dir);
  11. }
  12.  
  13. function getFilesFromDir($dir)
  14. {
  15. $this->dir = $dir;
  16. $this->_openDir();
  17. $this->_readDir();
  18. $this->_closeDir();
  19. return $this->files;
  20. }
  21.  
  22. function _readDir()
  23. {
  24. if($this->handle)
  25. {
  26. while(false !== ($file = readdir($this->handle)))
  27. {
  28. if($file != "." && $file != "..")
  29. {
  30. $this->files[] = $file;
  31. }
  32. }
  33. }
  34. }
  35.  
  36. function _closeDir()
  37. {
  38. closedir($this->handle);
  39. }
  40. }
  41. ?>

Uzycie
  1. <?php
  2.  
  3. $list = new listDir;
  4.  
  5. #tablica zawierająca nazwy plików - obrazków
  6. $obrazki = $list->getFilesFromDir("path/to/dir");
  7.  
  8. #inicjujemy generator licz losowych
  9. srand ((float) microtime() * 10000000);
  10.  
  11. #wybieramy jeden losowy obrazek z tablicy
  12. $obrazek = $obrazki[array_rand($obrazki)];
  13.  
  14. #wyświetlamy losowy obrazek
  15. echo '<img src="'.$obrazek.'" />';
  16.  
  17. ?>


Klasa pisana z reki - nie gwarantuje ze zadziala

edit
-----------------------
Poprawienie i sprawdzenie dzialania klasy

Ten post edytował bigZbig 16.03.2006, 08:53:16


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
jakuboss
post 15.03.2006, 15:12:45
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Dzięki, ale to jeszcze nie rozwiązuje problemu z robieniem linka z obrazka, a właśnie z tym mam największy kłopot :-)
Go to the top of the page
+Quote Post
kszychu
post 15.03.2006, 15:17:30
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


najpierw $tmp = explode('.', $obrazek);
a pozniej <a href=jakis.adres?costam='.$tmp[0]>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
jakuboss
post 15.03.2006, 18:28:33
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Cytat
  1. <?php
  2.  
  3. $list = new listDir;
  4.  
  5. #tablica zawierająca nazwy plików - obrazków
  6. $obrazki = $list->getFilesFromDir("path/to/dir");
  7.  
  8. #inicjujemy generator licz losowych
  9. srand ((float) microtime() * 10000000);
  10.  
  11. #wybieramy jeden losowy obrazek z tablicy
  12. $obrazek = $obrazki[array_rand($obrazki)];
  13.  
  14. #wyświetlamy losowy obrazek
  15. echo '<img src="'.$obrazek.'" />';
  16.  
  17. ?>


Wyskakuje błąd w trzeciej linii ...




Kszychu: dzięki, zadziałało elegancko ze skryptem, który losuje zdeklarowane obrazki, więc pewnie też zadziała ze skryptem powyższym smile.gif
Go to the top of the page
+Quote Post
LBO
post 15.03.2006, 18:32:27
Post #6





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


a includujesz gdzies plik z klasa listDir() questionmark.gif czy jest ona widoczna dla skryptu?
Go to the top of the page
+Quote Post
jakuboss
post 15.03.2006, 18:35:58
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Plik z klasą includowałem.


EDIT: hmmm, w sumie teraz wrzuciłem klasę do tego samego pliku i wyskakuje błąd w linii 32:

  1. <?php
  2. return $this->files;
  3. ?>


"Parse error: parse error, unexpected T_RETURN in /home/jakubos/domains/goline.pl/public_html/img.php on line 32"

Ten post edytował jakuboss 15.03.2006, 18:39:08
Go to the top of the page
+Quote Post
LBO
post 15.03.2006, 18:38:07
Post #8





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat
Wyskakuje błąd w trzeciej linii ...


podaj tekst błędu...
Go to the top of the page
+Quote Post
jakuboss
post 15.03.2006, 19:17:47
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Edytowałem posta wyżej.
Go to the top of the page
+Quote Post
bigZbig
post 16.03.2006, 08:54:48
Post #10





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


@jakuboss - poprawilem klase z mojego wczesniejszego posta. Teraz powinno wszystko dzialac


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
jakuboss
post 16.03.2006, 16:09:05
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.10.2002

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


Dzięki, ale teraz wyskakuje błąd w linii 46
"Fatal error: Call to a member function on a non-object in /xxx/img.php on line 46"

  1. <?php
  2. $obrazki = $list->getFilesFromDir("xxx/thumb");
  3. ?>


Ten post edytował jakuboss 17.03.2006, 22:42:24
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 Wersja Lo-Fi Aktualny czas: 15.07.2025 - 14:54