Artykuły na każdy temat
<?php
// Tablica ze zdefiniowanymi obrazkami do losowania
$cfg['list'] = array('img1.png', 'img2.png', 'img3.png');
$cfg['dir_images'] = 'images';
// Jeżeli wersja PHP < 4.2.0 wtedy zachodzi potrzeba użycia generator liczb losowych
// srand(floor(time() / (60*60*24)));
// Losowanie
$tmp['img'] = $cfg['list'][array_rand($cfg['list'])];
echo '<img src="'.$cfg['dir_images'].'/'.$tmp['img'].'" alt="Tekst alternatywny" />';
?>
Poniższy przykład daje możliwość losowania obrazka ze zdefiniowanego katalogu oraz przy ustalonych rozszerzeniach plików graficznych.
<?php
$cfg['dir_images'] = 'images';
$cfg['expansions'] = array('png', 'gif', 'jpg');
// Jeżeli wersja PHP < 4.2.0 wtedy zachodzi potrzeba użycia generator liczb losowych
// srand(floor(time() / (60*60*24)));
// Losowanie
$tmp['randed_img']['name_file'] = $tmp['img'][array_rand($tmp['img'] = glob('./'.$cfg['dir_images'].'/*.{'.implode(',', array_unique(array_map('strtolower', $cfg['expansions']))).'}', GLOB_BRACE))];
$tmp['randed_img']['file_info'] = getimagesize($tmp['randed_img']['name_file']);
// Throw
echo '<img src="'.$tmp['randed_img']['name_file'].'" '.$tmp['randed_img']['file_info'][3].' alt="Tekst alternatywny" />';
?>
Ten kod daję możliwość losowania zdjęcia z drobnym wyjątkiem, mianowicie można zdefiniować kilka folderów, w których ma szukać obrazków.
<?php
$cfg['dir_images'] = array('images', 'images2');
$cfg['expansions'] = array('png', 'gif', 'jpg');
$tmp['file_list'] = glob('./{'.implode(',', $cfg['dir_images']).'}/*.{'.implode(',', array_unique(array_map('strtolower', $cfg['expansions']))).'}', GLOB_BRACE);
$tmp['how']['images'] = count($tmp['file_list']);
// Jeżeli wersja PHP < 4.2.0 wtedy zachodzi potrzeba użycia generator liczb losowych
// srand(floor(time() / (60*60*24)));
// Losowanie
$tmp['randed_img']['name_file'] = $tmp['file_list'][array_rand($tmp['file_list'])];
$tmp['randed_img']['file_info'] = getimagesize($tmp['randed_img']['name_file']);
// Throw
echo '<img src="'.$tmp['randed_img']['name_file'].'" '.$tmp['randed_img']['file_info'][3].' alt="Tekst alternatywny" />';
?>
Poniższy skrypt daje możliwość losowania kilku obrazków nie powtarzających się z jednego lub kilku folderów.
<?php
$cfg['dir_images'] = array('images', 'images2');
$cfg['expansions'] = array('png', 'gif', 'jpg');
$cfg['how']['rand'] = 3;
$tmp['file_list'] = glob('./{'.implode(',', $cfg['dir_images']).'}/*.{'.implode(',', array_unique(array_map('strtolower', $cfg['expansions']))).'}', GLOB_BRACE);
$tmp['how']['images'] = count($tmp['file_list']);
$tmp['randed_file_list'] = array();
if($tmp['how']['images'] > 0)
{
if($cfg['how']['rand'] >= $tmp['how']['images'] && $cfg['how']['rand'] != 1)
{
$tmp['how']['rand'] = $cfg['how']['rand'] - 1;
}
else
{
$tmp['how']['rand'] = $cfg['how']['rand'];
}
// Jeżeli wersja PHP < 4.2.0 wtedy zachodzi potrzeba użycia generator liczb losowych
// srand(floor(time() / (60*60*24)));
for($h = 0; $h < $tmp['how']['rand']; ++$h)
{
$tmp['randed_file_list'][] = $tmp['randed']['img'] = $tmp['file_list'][array_rand($tmp['file_list'])];
$tmp['key'] = array_search($tmp['randed']['img'], $tmp['file_list']);
unset($tmp['file_list'][$tmp['key']]);
}
for($h = 0; $h < $tmp['how']['rand']; ++$h)
{
$tmp['file_info'] = getimagesize($tmp['randed_file_list'][$h]);
// Throw
echo '<img src="'.$tmp['randed_file_list'][$h].'" '.$tmp['file_info'][3].' alt="Tekst alternatywny" /><br />';
}
}
else
{
echo 'Brak obrazków';
}
?>
Przykłady do ściągnięcia znajdują się tutaj.
Komentarze
Dodaj komentarz
CapaciousCore