webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Wyświetlanie losowego obrazka z wybranego katalogu

autor: Konrad 'knrdk' Kopciuch, ostatnia modyfikacja: 2007-08-27

szukaj: losowy obrazek losowy obrazek otwieranie katalogów otwieranie katalogów PHP PHP

Czasami zachodzi potrzeba wyświetlenia losowego obrazka z wybranego katalogu, dzięki funkcjom katalogowym dostępnym w PHP można ten proces znacznie uprościć i zautomatyzować.

Najpierw za pomocą funkcji opendir() należy otworzyć folder do odczytu, funkcja jako parametr oczekuje nazwy katalogu który chcemy otworzyć:

$folder = opendir(obrazki);

Teraz należy wczytać do tablicy asocjacyjnej nazwy wszystkich plików z katalogu obrazki

$i = 0;
while(false !=($plik = readdir($folder))){
if($plik != "." && $plik != ".."){
	$obrazki[$i]= $plik;
	$i++;
	}
}

Funkcja readdir() zwraca nazwy kolejnych plików w danym katalogu, a gdy wszystkie zostaną już odczytane zwraca false. Instrukcja warunkowa if została zastosowana aby odfiltrować . (obecny folder) i .. (folder o poziom wyżej).

Za pomocą funkcji closedir() zamykamy połączenie z wcześniej otworzonym katalogiem.

Nie pozostało nam nic innego jak wylosować losowy element tablicy, i wyświetlić plik w oknie przeglądarki.

$losowy=rand(0,count($obrazki)-1);

Funkcja rand(), zwraca losową liczbę z podanego w parametrach przedziału. Natomiast funkcja count() przekazuje liczbę elementów tablicy.

Obrazek wyświetlamy poprzez przekazanie do przeglądarki kodu HTML:

echo '<img src="obrazki/'.$obrazki[$losowy].'" alt="" />';

Gotowy skrypt:

<?php
$folder = opendir(obrazki);
$i = 0;
while(false !=($plik = readdir($folder))){
if($plik != "." && $plik != ".."){
	$obrazki[$i]= $plik;
	$i++;
	}
}
closedir($folder);
$losowy=rand(0,count($obrazki)-1);
echo '<img src="obrazki/'.$obrazki[$losowy].'" alt="" />';
?>

Konrad 'knrdk' Kopciuch

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org