PHP间隔更改

时间:2015-04-14 07:47:19

标签: php intervals

这是代码。我需要更改图像而不是每个刷新网站,但需要一段时间。 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");
?>

2 个答案:

答案 0 :(得分:1)

此解决方案每小时会显示一张不同的图像。

//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 :(得分: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" />';
}

无论您刷新多少次,您都会拥有相同的图像,但每小时一次就会有所不同。