Изменение интервала PHP

Вот код Мне нужно менять изображения не на каждом сайте обновления, а на некотором периоде времени, например. 1 час. Возможно?

<?php
$cfg['list'] = array('s4.jpg', 's5.jpg', 's6.jpg');
$cfg['dir_images'] = 'images';

echo '<img src="'.$cfg['dir_images'].'/'.$tmp['img'].'" alt="Tekst" />';
?><?php
$url1=$_SERVER['REQUEST_URI'];
header("Refresh: 60; URL=$url1");
?>

0

Решение

Вам нужно сэкономить время, которое вы в последний раз посещали страницу, и контент, который вы хотите показать, в течение часа. Например, если вы посещаете страницу в первый раз, вы сохраняете время в файле / сеансе / базе данных, а затем проверяете, прошел ли час.

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

Другой способ сделать это будет с базой данных.

$folder = "pictures";

$weeds = array('.', '..');
$folder_files = array_diff(scandir($folder), $weeds);

if(!file_exists('time.txt')){
$myfile = fopen("time.txt", "w");
}

$myfile = fopen("time.txt", "r") or die("Unable to open time.txt!");
$VisitTime = fread($myfile,filesize("time.txt"));
fclose($myfile);

$PassedTime = time() - $VisitTime;
if($PassedTime > 3600){

echo 'create new data';

/**
This is where the data gets saved
Here you can create the dynamic content which will be saved in a text file.
**/
$random_image = array_rand($folder_files);
$random_image = $folder_files[$random_image];
$myfile = fopen("data.txt", "w") or die("Unable to open file!");
fwrite($myfile, $random_image);
fclose($myfile);

$myfile = fopen("time.txt", "w") or die("Unable to open file!");
fwrite($myfile, time());
fclose($myfile);

echo '<img src="'.$folder.'/'.$random_image.'" alt="Tekst" />';

}else{

echo 'data already created<br/>';

$NextDataRemake = floor(( ($VisitTime + 3600) - time()) / 60);

echo 'Next data remake in ', $NextDataRemake, 'min.<br/>';

$myfile = fopen("data.txt", "r") or die("Unable to open file!");
$random_image = fread($myfile,filesize("data.txt"));
fclose($myfile);

echo '<img src="'.$folder.'/'.$random_image.'" alt="Tekst" />';
}

Независимо от того, сколько раз вы обновляете, у вас будут одни и те же изображения, но раз в час это будет что-то другое.

0

Другие решения

Это решение будет отображать другое изображение каждый час.

//List of your images
$cfg['list'] = array('s4.jpg', 's5.jpg', 's6.jpg');
$cfg['dir_images'] = 'images';// Get the current hour
$hour = getdate()['hours'];

// Pick an image from the list depend on the current hour
$image_index = $hour % sizeof($cfg['list']);

echo '<img src="'.$cfg['dir_images'].'/'.$cfg['list'][$image_index].'" alt="Tekst" />';

Функция getdate () в php предоставит вам информацию о текущем времени.

array (size=11)
'seconds' => int 24
'minutes' => int 43
'hours' => int 10
'mday' => int 14
'wday' => int 2
'mon' => int 4
'year' => int 2015
'yday' => int 103
'weekday' => string 'Tuesday' (length=7)
'month' => string 'April' (length=5)
0 => int 1429001004

Затем, используя $hours % sizeof($images) даст вам число от 0 до количества изображений в вашем списке.

Exemple:

9%3 = 0
10%3 = 1
11%3 = 2
12%3 = 0

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

1

По вопросам рекламы [email protected]