Перейти к контенту

вопрос по скрипту Динамическая смена изображений


Рекомендуемые сообщения

собственно вот этот скрипт оч хороший и удобный)

 

но хочется одно маленькое дополнение к нему:

1) не менять картинку после обновления странички

2) менять картинку раз в сутки или 2 раза в сутки в опр время)

или мож че есть другое похожее?:D

Ссылка на комментарий
Поделиться на других сайтах

но хочется одно маленькое дополнение к нему:

1) не менять картинку после обновления странички

2) менять картинку раз в сутки или 2 раза в сутки в опр время)

или мож че есть другое похожее?:D

Понравился скрипт. Доделал. Сделал возможность использования неограниченного количества таймеров "задержки" изображения.

Вызов: rotate.php?rtime=120 будет менять картинки каждые 120 секунд (2 минуты); при этом вызов rotate.php?rtime=3600 с другой страницы будет прокручивать свои картинки со сменой через 360 секунд (1 час).

Никаких ограничений на количество счетчиков и длительность интервала смены картинки в каждом счетчике.

 

<?php

/*
AUTOMATIC IMAGE ROTATOR
Version 2.2 - December 4, 2003
Copyright © 2002-2003 Dan P. Benjamin, Automatic, Ltd.
All Rights Reserved.
http://www.hiveware.com/imagerotator.php

http://www.automaticlabs.com/
*/

/* ------------------------- CONFIGURATION -----------------------
Пропишите в $folder полный путь к директории с изображениями.
Пример: $folder = '/user/me/example.com/images/';
Если у вас rotate.php лежит в одной папке с изображениями, то
настраивать ничего не нужно. Оставьте $folder = '.';
*/
//$folder = '.';
// Для IPB директории аплоадсов можно проще:
$folder = $_SERVER['DOCUMENT_ROOT']."/uploads";
/*	  
Большинству пользователей эти настройки можно проигнорировать.
Если вы хотите добавить новые типы изображений, отличных от
gif, jpg, и png, то просто скопируйте строку типа изображения
и добавьте ниже остальных строк со своим mime-типом.

Пример:

	PDF файлы:
	$extList['pdf'] = 'application/pdf';

	CSS файлы:
	$extList['css'] = 'text/css';
Вы даже можете использовать случайные HTML файлы:
	$extList['html'] = 'text/html';
	$extList['htm'] = 'text/html';
Главное, чтобы mime-тип был правильным!
*/

$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';

// Ниже редактировать ничего не нужно.
// --------------------- END CONFIGURATION -----------------------

/*
Add-on by FatCat: задержка ротации по таймеру в адресной строке.
	Вызов: rotate.php?rtime=600
	Параметр rtime указывает скрипту на сколько секунд задержать
	изображение до следующей ротации.

	Скрипту должны быть разрешены чтение и запись в директорию с имиджами.
*/

if( isSet($_GET['rtime']) )
{
if(!file_exists($folder."/rotate.php.ini"))
{
	$fh = fopen($folder."/rotate.php.ini", "w");
	fwrite($fh, '');
	fclose($fh);
}
$table = file($folder."/rotate.php.ini");
$rows = Array();
foreach($table as $row)
{
	// Пересобираем инишку под текущее время
	$cell = explode(" ",$row);
	$time = time() - intval($cell[0]);
	if(intval($cell[1])>$time)$rows[] = trim($row);

	if($cell[0] == $_GET['rtime'] and intval($cell[1])>$time)$_GET['img'] = trim($cell[2]);
}
}


$img = null;
if(substr($folder,-1) != '/')
{
$folder = $folder.'/';
}
if(isset($_GET['img']))
{
$imageInfo = pathinfo($_GET['img']);
if(
	isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
	file_exists( $folder.$imageInfo['basename'] )
)
{
	$img = $folder.$imageInfo['basename'];
}
}
else
{
$fileList = array();
$handle = opendir($folder);
while( false !== ( $file = readdir($handle) ) )
{
	$file_info = pathinfo($file);
	if( isset( $extList[ strtolower( $file_info['extension'] ) ] ) )
	{
		$fileList[] = $file;
	}
}
closedir($handle);
if (count($fileList) > 0)
{
	$imageNumber = time() % count($fileList);
	$img = $folder.$fileList[$imageNumber];
}
}

if ($img!=null)
{
// Add-on by FatCat: Забираем новое имя файла для ротации по времени
if( isSet($_GET['rtime']) and !isset($_GET['img']) )
{
	$rows[] = intval($_GET['rtime'])." ".time()." ".$fileList[$imageNumber];
	$rows = implode(PHP_EOL,$rows);
	$fh = fopen($folder."/rotate.php.ini", "w");
	fwrite($fh, $rows);
	fclose($fh);
}

$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
}
else
{
if ( function_exists('imagecreate') )
{
	header ("Content-type: image/png");
	$im = @imagecreate (100, 100)
		or die ("Cannot initialize new GD image stream");
	$background_color = imagecolorallocate ($im, 255, 255, 255);
	$text_color = imagecolorallocate ($im, 0,0,0);
	imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
	imagepng ($im);
	imagedestroy($im);
}
}

?>

Ссылка на комментарий
Поделиться на других сайтах

это

*/
//$folder = '.';
// Для IPB директории аплоадсов можно проще:
$folder = $_SERVER['DOCUMENT_ROOT']."/uploads";
/*

сменил на это:

*/
$folder = '.';
// Для IPB директории аплоадсов можно проще:
//$folder = $_SERVER['DOCUMENT_ROOT']."/uploads";
/*

дабы скрипт лежит в папке с картинками

так же картинки присутствуют рядом с фалом rotate.php

открываю свою страничку вставляю код:

<img src="include/rotate.php?rtime=600" />

и ничего не происходит(

даже если просто прописываю:

<img src="include/rotate.php" />

 

странно или я что то упустил?

Ссылка на комментарий
Поделиться на других сайтах

Скрипту должны быть разрешены чтение и запись в директорию с имиджами.

жосткий скрипт)

 

его надо еще понаблюдать и помоделировать

Ссылка на комментарий
Поделиться на других сайтах

ХМ нет извиняюсь все ок над было чуть подождать :D счас проверяю все вроде пока работает как надо

 

 

его надо еще понаблюдать и помоделировать
хех былоб кому интерсено и былоб у коголибо время)

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

Изменено пользователем GhosTama
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...
  • 2 недели спустя...
Другой вопрос: как доработать что бы через определенные промежутки времени появлялась определенная для этого промежутка времени картинка. Например каждые 6 часов. Вначале ночная, утренняя, дневная и вечерняя картинки, затем снова по кругу.
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.