Вывод картинок на PHP - нужен скрипт

caspersky
На сайте с 14.12.2007
Offline
81
10160

ТЗ - в папке лежат картинки (тумбы).

нужен максимально простейший скрипт на ПХП для вывода случайных

картинок (к примеру 9 штук) на странице и чтобы не было одинаковых.

находятся восновном тяжелые скрипты. либо случайный вывод только одной картинки.

DI
На сайте с 17.08.2008
Offline
21
#1

накидал за 10 минут

<?php

function get_images($directory)

{

$filenames = array();

$directory = str_replace('\\', '/', $directory);

if(is_dir($directory))

{

$dp = opendir($directory);

while($filename = readdir($dp))

{

if(!is_dir($directory.'/'.$filename))

{

$file_ext = strtolower(substr($directory.'/'.$filename, strrpos($directory.'/'.$filename, '.')+1));

if(in_array($file_ext, array('jpg', 'gif', 'png')))

{

$filenames[count($filenames)] = $filename;

}

}

}

}

$dp = closedir();

return $filenames;

}

$path = '/images/'; // тут указываешь папку относительно корня веб дерева

$img_count = 9; // тут указываешь число картинок которое нужно выводить

$images = get_images($_SERVER["DOCUMENT_ROOT"].$path);

$i = 0;

while($images[$i])

{

$npic = rand(0, count($images)-1);

echo '<img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt="">';

unset($images[$npic]);

$images = array_values($images);

$i++;

if($i>=$img_count) break;

}

?>

stalker37
На сайте с 16.05.2008
Offline
164
#2

caspersky, в отличии от demon_id я не так силен в PHP, поэтому делаю все проще. Даю файлам имена типа 1.jpg, 2.jpg и т.п.

Потом вызываю их так:

<?php

{

$name=mt_rand($min=1,$max=9);//если полагать, что Вы имеете файли 1...9.jpg

echo"<img src='$name.jpg'>";

}

?>

Не заметил про случайность. Как правило я модифицирую это в зависимости от того, сколько случайных картинок нужно, но так же примитивно.

Шаред и облачный хостинг, VPS (http://jino.ru/?par=stalker37)
DI
На сайте с 17.08.2008
Offline
21
#3

stalker37, кроме того что нужно картинки переименовать, такой скрипт будет иногда выводить одинаковые картинки.

stalker37
На сайте с 16.05.2008
Offline
164
#4

demon_id, я просто сразу не заметил это - стараюсь использовать как можно меньше скриптов, так как если знаю, что вот я разок залью эти 10 картинок и менять не буду, то лучше их переименовать - так быстрее будет. Я, как правило, при совпадении номер одной увеличиваю.

DI
На сайте с 17.08.2008
Offline
21
#5
stalker37:
Я, как правило, при совпадении номер одной увеличиваю.

рандом из 9 попыток может выдать одно и тоде число несколько раз. и даже если его увеличить на 1, то не факт что следующее число уже не выпадало.

ТС хочет выбирать n не повторяющихся картинок.

caspersky
На сайте с 14.12.2007
Offline
81
#6

demon_id, а как вывести тумбы 3 на 3 ?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий