Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowy obrazek
dolmi2
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 13.01.2004

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


Mam taki oto skrypt powodujący wyświetlanie losowego obrazka z danego katalogu.

  1. <?php 
  2. $path = '.'; 
  3. $i = 0; 
  4. $imgDir = opendir ($path); 
  5.    while ( $file = readdir( $imgDir ) ) 
  6.    {     
  7.       $file_type = strrchr( $file, &#092;".\" ); 
  8.       $is_image = eregi( &#092;"jpg|gif\",$file_type ); 
  9.       if ( $file != '.' && $file != '..' && $is_image ) 
  10.       { $images[$i++] = $file; } 
  11.    } 
  12. closedir ($imgDir); 
  13. srand( (double) microtime()*1000000 ); 
  14. $image_name = $path . '/' . $images[rand( 0,sizeof( $images ) -)]; 
  15. $imgSize = GetImageSize( $image_name ); 
  16. if ( $i == 0 ) 
  17.    die(); 
  18. print ( &#092;"<img src=\"\" . $image_name . \"\"\" . $imgSize[3] . \" />n\" ); 
  19. ?>


Mój problem polega na tym, że nie wiem, jak zrobić, aby skrypt ten wyświetlał tylko pliki mniejsze niż na przykład 5kB. Czy jest jakiś sposób, aby to wymóc na skrypcie? Za radą znajomego zmieniłem 9. linijkę na
Kod
if ( $file != '.' && $file != '..' && $is_image && filesize($file)<5121)

ale niestety to nic nie dało. Proszę o pomoc.

Ten post edytował dolmi2 20.12.2004, 21:34:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
oldek
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.06.2004

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


faktycznie nie miało prawa zadziałać, bo GetImgSize nie podaje ... rozmiaru pliku (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) Na szczęście jest jeszcze funkcja filesize() która robi to co trzeba... Poniżej nowa wersja, mam nadzieję że już działająca:
  1. <?php
  2. $safety_count=0;
  3. do {
  4.   $image_name = $path . '/' . $images[rand( 0,sizeof( $images ) -)]; 
  5.   $imgSize_inBytes = filesize( $image_name ); 
  6.   $safety_count++;
  7. } while (($imgSize_inBytes>5120) AND ($safety_count<100));
  8. $imgSize = GetImageSize( $image_name ); 
  9. ?>
i nie sprawdzi się przysłowie 'do 3 razy sztuka' (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

edit: jeśliś taki początkujący, to jeszcze dodam: zastąp powyższym swój oryginalny kod
  1. <?php
  2. $image_name = $path . '/' . $images[rand( 0,sizeof( $images ) -)]; 
  3. $imgSize = GetImageSize( $image_name );
  4. ?>


Ten post edytował oldek 21.12.2004, 09:32:18
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.09.2025 - 12:18