PHP Скрипт за 5 случайни картинки.

Smirnoff

Registered
Може ли такова скриптче, да кажем
в една папка съм сложил 100 картинки
и искам при всяко рефрешване да изважда
5 на принципа random.
и ако картинките са с резолюция 200х200
скрипта да ги оразмерява на 100х100 .

Благодаря предварително на всички !!!!
 
Ето какво сътворих.
Дано е това което ти трябва.

Код:
<?php
$dir = "pics";
$directory = opendir("./".$dir); 
while ($files = readdir($directory)) {
if (($files != "..") AND ($files != ".")){ 
$file[] = $dir."/".$files;
}
}
for ($i=0;$i<5;$i++){
$random = rand(0, (count($file)-1));
echo "<img src=\"thumb.php?wdth=100&hght=100&from=".$file[$random]."\">\n";
}
?>

Предположих че ще имаш само картинки в тази папка, затова не съм сложил проверка дали е картинка или не.


Допълнително ти трябва и:
thumb.php
Код:
<?php
$new_width = $_GET['wdth'];
$new_height = $_GET['hght'];
$source_file = $_GET['from'];
if($source_file && $new_height && $new_width)
{
   list($img_width,$img_height) = getimagesize($source_file); // Взимат се височината и ширината на картината


   $thumbnail = imagecreatetruecolor($new_width,$new_height); // Създава се картинка в памета

   // Взимаме сорса на картинката
   if ( strpos($source_file,".gif") ) { $img_source = imagecreatefromgif($source_file); }
   if ( (strpos($source_file,".jpg")) || (strpos($source_file,".jpeg")) )
   { $img_source = imagecreatefromjpeg($source_file); }
   if ( strpos($source_file,".bmp") ) { $img_source = imagecreatefromwbmp($source_file); }
   if ( strpos($source_file,".png") ) { $img_source = imagecreatefrompng($source_file); }
 
   // Създаваме картинка. В примера е PNG
header("Content-type: image/jpeg"); 
Imagecopyresampled($thumbnail, $img_source, 0, 0, 0, 0, $new_width, $new_height,imagesx($img_source),imagesy($img_source));
imagePNG($thumbnail); 
   
   // След като сме създали всичко, можем да изчистим картинките.
   imagedestroy($img_source);
   imagedestroy($thumbnail);
}
?>
 
супер е идеята но аз като го тествах и ми се повтарят картинките няма ли как да се избегне този ефект
 
burkoff,
тъй като имената на картинките са записани в масив..просто при всяко попадение от rand премахваме картинката от масива.

т.е. това би трябвало да работи...

for ($i=0;$i<5;$i++){
$random = rand(0, (count($file)-1));
echo "<img src=\"thumb.php?wdth=100&hght=100&from=".$file[$random]."\">\n";
unset($file[$random]);
}

така със всяка следваща масива намалява и скрипта избира произволно от останалите ..
неможе да стане повторение тъй като картинката вече несъществува в масива. :)
:?:
 
А може ли примерно да стане така:
аз имам едно
<marquee>и тука да се въртят всички снимки от дадена папка</marquee>
А не да кажем 5 - 6 или колкото аз поискам. :roll:
 

Back
Горе