Php y=3; $hours=12; $time_block=60*60*$hours; $time_now=strottime('now'); $block\u num=地板($time\u now/$time\u block)%$num\u图像; $images=array(); 对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像; $images[$x]=$images\u num'。巴布亚新几内亚'; }
我不会运行cron。我会这样做:Php y=3; $hours=12; $time_block=60*60*$hours; $time_now=strottime('now'); $block\u num=地板($time\u now/$time\u block)%$num\u图像; $images=array(); 对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像; $images[$x]=$images\u num'。巴布亚新几内亚'; },php,html,Php,Html,我不会运行cron。我会这样做: $num_images = 20; $images_display = 3; $hours = 12; $time_block = 60 * 60 * $hours; $time_now = strtotime('now'); $block_num = floor($time_now / $time_block) % $num_images; $images = array(); for($x=1;$x<=$images_display;$x++) {
$num_images = 20;
$images_display = 3;
$hours = 12;
$time_block = 60 * 60 * $hours;
$time_now = strtotime('now');
$block_num = floor($time_now / $time_block) % $num_images;
$images = array();
for($x=1;$x<=$images_display;$x++) {
$image_num = $block_num + $x;
if($image_num > $num_images) $image_num = $image_num % $num_images;
$images[$x] = $image_num . '.png';
}
$num_images=20;
$images\u display=3;
$hours=12;
$time_block=60*60*$hours;
$time_now=strottime('now');
$block\u num=地板($time\u now/$time\u block)%$num\u图像;
$images=array();
对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像;
$images[$x]=$images\u num'。巴布亚新几内亚';
}
这可以在简单的PHP中完成(因为您提到了PHP)
$numOfImages=20;
$unit=日期('j')*2;//每月的第二天,加倍模拟12小时的时间段。
如果(日期('G')<12){//0-23小时
美元单位--;
}
$image1=$unit%$numOfImages;
$image2=($unit+1)%$numOfImages;
$image3=($unit+2)%$numOfImages;
var_dump($image1);
var_dump($2);
var_dump($3);
这可以在简单的PHP中完成(因为您提到了PHP)
$numOfImages=20;
$unit=日期('j')*2;//每月的第二天,加倍模拟12小时的时间段。
如果(日期('G')<12){//0-23小时
美元单位--;
}
$image1=$unit%$numOfImages;
$image2=($unit+1)%$numOfImages;
$image3=($unit+2)%$numOfImages;
var_dump($image1);
var_dump($2);
var_dump($3);
您可以每12小时重新加载一次页面并发送下一张图像。这是你需要的吗?查一下时间。如果在00:00和12:00之间,使用第一组。否则,使用第二组。用So检查当前日期和时间,如果我现在加载到你的网页,它显示1,2,3,如果我在12小时内加载,它应该显示2,3,4。我说的对吗?@ATOzTOA没错。你可以每12小时重新加载一次页面,然后发送下一张图片。这是你需要的吗?查一下时间。如果在00:00和12:00之间,使用第一组。否则,使用第二组。用So检查当前日期和时间,如果我现在加载到你的网页,它显示1,2,3,如果我在12小时内加载,它应该显示2,3,4。我说得对吗?@ATOzTOA说得对。尽量避免写cron作业。还有第二种选择吗?您应该在问题中提到这一点,以便人们知道在找到此页面时答案不会使用cron:)您可以让页面检查用户打开页面的时间。有一个从第一天开始硬编码的“开始”时间,计算出从这一时间起已经过去了多少小时,将该数字除以12,并将其用作imgsrc
属性中的图像编号?试图避免编写cron作业。还有第二种选择吗?您应该在问题中提到这一点,以便人们知道在找到此页面时答案不会使用cron:)您可以让页面检查用户打开页面的时间。有一个从第一天开始硬编码的“开始”时间,计算出从这一时间起已经过去了多少小时,将该数字除以12,并将其用作imgsrc
属性中的图像编号?这是假设文件名为1.png、2.png等。。。此外,您还可以通过扫描特定目录中的文件数轻松地使$num_images
动态化。这是假设文件名为1.png、2.png等。。。此外,您还可以通过扫描特定目录中的文件数量,轻松地使$num_images
成为动态的。这非常有效。谢谢:)很好用。谢谢:)
include "img_config.php"
$current_nr = (++$current_image)%20+1;
file_put_contents("img_config.php",'$current_image = '.$current_nr.';');
1.png
2.png
3.png
Read content of last_change.txt
If the content *plus* 12 hours *is less than* current time
Change images
Put current time to last_change.txt
Done
function changeStartpageImage() {
// change the image every x hours
$hours = 170;
$fileinfo = stat("images/startseite/startseitenbild.jpg");
if (time() - $fileinfo['mtime'] < ($hours * 60* 60)) {
return;
}
$handler = opendir("images/startseite/");
$results = array();
while ($file = readdir($handler)) {
if (substr($file, 0, 1) != "." && $file != "startseitenbild.jpg" ) {
$results[] = $file;
}
}
$newFile = $results[array_rand($results)];
copy("images/startseite/".$newFile, "images/startseite/startseitenbild.jpg");
closedir($handler);
}
$now = time(); // you can simulate adding 12 hours +3600*12
$base = round( $now/(3600*12) ); // this number change every 12 hours
$n_images = 20; // number of your images
$start_from = $base % $n_images; // start from $start_from image
// loop for get your 4 images (3,4,5,6 or 4,5,6,7 or ,18,19,20,1,2 etc.)
for($i = 0; $i < 4; $i++) {
$image = ($start_from+$i) % $n_images + 1;
echo "get image " . $image.".jpg<br/>";
}
$num_images = 20;
$images_display = 3;
$hours = 12;
$time_block = 60 * 60 * $hours;
$time_now = strtotime('now');
$block_num = floor($time_now / $time_block) % $num_images;
$images = array();
for($x=1;$x<=$images_display;$x++) {
$image_num = $block_num + $x;
if($image_num > $num_images) $image_num = $image_num % $num_images;
$images[$x] = $image_num . '.png';
}
$numOfImages = 20;
$unit = date('j') * 2; // Day of the month, doubled to simulate chunks of 12 hours.
if (date('G') < 12) { // Hours 0 - 23
$unit--;
}
$image1 = $unit % $numOfImages;
$image2 = ($unit + 1) % $numOfImages;
$image3 = ($unit + 2) % $numOfImages;
var_dump($image1);
var_dump($image2);
var_dump($image3);