PHP区间变化
PHP interval change
这是代码。我需要更改图像,而不是每个刷新站点,而是一段时间前。 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");
?>
您需要将上次访问页面的时间和要显示的内容保存一个小时。例如,如果您是第一次访问该页面,您会在 file/session/database 中保存时间,然后检查是否已经过了一个小时。
我已经制作了文本文件版本。这适用于页面中的每个用户。如果您想要用户特定的内容,则必须在会话中保存数据。
执行此操作的其他方法是使用数据库。
$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" />';
}
无论刷新多少次,图像都是一样的,但每小时刷新一次就会有所不同。
此解决方案将每小时显示不同的图像。
//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" />';
php 的 getdate() 函数为您提供有关当前时间的信息。
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 和列表中图像数量之间的数字。
示例:
9%3 = 0
10%3 = 1
11%3 = 2
12%3 = 0
这样,您可以每小时显示不同的图像。
这是代码。我需要更改图像,而不是每个刷新站点,而是一段时间前。 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");
?>
您需要将上次访问页面的时间和要显示的内容保存一个小时。例如,如果您是第一次访问该页面,您会在 file/session/database 中保存时间,然后检查是否已经过了一个小时。
我已经制作了文本文件版本。这适用于页面中的每个用户。如果您想要用户特定的内容,则必须在会话中保存数据。
执行此操作的其他方法是使用数据库。
$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" />';
}
无论刷新多少次,图像都是一样的,但每小时刷新一次就会有所不同。
此解决方案将每小时显示不同的图像。
//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" />';
php 的 getdate() 函数为您提供有关当前时间的信息。
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 和列表中图像数量之间的数字。
示例:
9%3 = 0
10%3 = 1
11%3 = 2
12%3 = 0
这样,您可以每小时显示不同的图像。