AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Вывод случайного изображения из папки на php

Например, у вас есть сайт и на сайте есть мини блок где вы показываете картинки, и вы постоянно(например: раз в день) обновляете html файл в который каждый раз вставляете новую картинку. Согласитесь это очень не удобно, ну так вот в данном примере мы решим эту проблему. Пример вы можете посмотреть здесь, потом обновите страницу, для этого нажмите F5 и вы увидите, что картинка стала совершенно другой.
Для начала создайте файл index.php и вставьте в него следующий код:

$imgdir="img/";	// откуда будут грузится картинки
$ext="jpg";	// расширение картинок, которые будут выводится
$mode=2;
$error="В папке нет картинок!";
$errorfile="error/error_001.jpg";
$NoCacheMode=1;

function NoCache()
{
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
header("Last-Modified: ".gmdate("D, d m y H:i:s")."GMT");
}

function FileCount($imgdir)
{
$files=0;
$cfile=opendir("$imgdir");

while(($e=readdir($cfile))!==false) $files++;
$files-=3;
return $files;
}

function filetest($ranfile)
{global $imagelist;
 $status = false;
 if (IsSet($imagelist)){
	foreach ($imagelist as $occu) {
		$occu=trim($occu);
		if ($ranfile==$occu) {
			$status=true;
			return $status;
			}
		}
 }
 return $status;
}

function ImgWrite($ranfile)
{global $imagelist;
 $ranfile=trim($ranfile);
 $imagelist[]=$ranfile;
}

function ImgRandom($files)
{global $ext, $imgdir, $imgcounter, $mode, $error, $errorfile;
 $ranfile= mt_rand(1, $files);
 $ranfile= sprintf("%03d", $ranfile);
 if (!filetest($ranfile)) {
	ImgWrite($ranfile);
	Echo "<img src=\"$imgdir$ranfile.".$ext."\">";
	$imgcounter++;
	}
 else {
	if ($imgcounter<$files) ImgRandom($files);
	else {
		if ($mode==1) {
			Echo $error."<br>";
		}
		elseif ($mode==2) {
			Echo "<img src=\"$imgdir$errorfile.".$ext."\">";
			}
		}
	}
}
if ($NoCacheMode==1) NoCache();
$imgcounter=0;
print "<title>Случайный вывод картинок</title><br>";
ImgRandom(FileCount($imgdir));

Если в папке img не будет ни одной картинки, на экран пользователя будет выведена картинка error/error_001.jpg.

Теперь когда будете загружать картинки в папку img не забудьте переименовать все картинки в названия такого типа 001.jp; 002.jpg; 003.jpg; 010.jpg и.т.д
Папку img надо класть в ту директорию, куда вы положили файл index.php или переназначьте путь откуда будут грузится картинки.


.

© Copyright 2008-2016 by KDG