PHP每2小时自动更改一次图像


PHP Change image automatically in every 2 hours

我需要一个PHP代码,每次每2小时更改一次图像。事实上,我有6张图片,我想每2小时自动更改这些图片。我怎么能做到这一点,任何人帮助我都非常感激。

如果您有6个图像,例如

$img1 = '/image1.png';
$img2 = '/image2.png';
$img3 = '/image3.png';
$img4 = '/image4.png';
$img5 = '/image5.png';
$img6 = '/image6.png';

你可以去做一个if命令,这将是最简单的解决方案

if(date('g') == 1 || date('g') == 2){
    $image = $img1;
}
if(date('g') == 3 || date('g') == 4){
    $image = $img2;
}
if(date('g') == 5 || date('g') == 6){
    $image = $img3;
}
...

也许不是最有效的代码,但应该像快速解决方案一样工作

date('g')返回一个小时的12小时格式,不带前导零,它应该是当前时间。你也可以做一些类似date('g', strtotime('now'))的事情,但我认为你不需要

在php中,这可以在几行简单的代码中实现。事实上,我整理了一个简单的例子,根据时间打印不同的图像-你应该能够很容易地调整它,以每小时输出不同的图像。

$i = substr(time(), -1, 2 );     

switch ($i) {     
case 0: 
        $img = '<img src="zero.JPG" alt="img">'; 
        break; 
case 1: 
        $img = '<img src="one.JPG" alt="img">'; 
        break; 
case 2: 
        $img = '<img src="two.JPG" alt="img">'; 
        break; 
case 3: 
        $img = '<img src="three.JPG" alt="img">'; 
        break; 
case 4: 
        $img = '<img src="four.JPG" alt="img">'; 
        break; 
case 5: 
        $img = '<img src="five.JPG" alt="img">'; 
        break; 
case 6: 
        $img = '<img src="six.JPG" alt="img">'; 
        break; 
case 7: 
        $img = '<img src="seven.JPG" alt="img">'; 
        break; 
case 8: 
        $img = '<img src="eight.JPG" alt="img">'; 
        break; 
case 9: 
        $img = '<img src="nine.JPG" alt="img">'; 
        break; 
} 
echo $img; 
<?php
    header('Content-Type: image/png');
    //add images acoordingly
    $imageArr = array('image1.png','image2.png');
    foreach($imageArr as $path){
        $im = imagecreatefrompng($path);
        imagepng($im);
        imagedestroy($im);
        sleep(2*60*60);
    }
?>

这是您要查找的代码吗

试试这个,

var i = 0; var path = new Array(); 
// LIST OF IMAGES 
path[0] = "image.jpg"; 
path[1] = "image1.jpg"; 
path[2] = "image2.jpg"; 
path[3] = "image3.jpg";
path[4] = "image4.jpg";
path[5] = "image5.jpg";

function swapImage() 
  { 
document.slide.src = path[i]; 
if(i < path.length - 1) i++; 
else i = 0; 
setTimeout("swapImage()",7200000); 
  } 
window.addEventListener("load",  swapImage); 
</script> 
<img height="230" name="slide" src="image.jpg" width="200" /></p>
</center></div></div>
<?php
// change every X hours
define('EVERY', 2);
// here we have the images
$images = [
    'image1.png',
    'image2.png',
    'image3.png',
    'image4.png',
    'image5.png',
    'image6.png'
];
// anonymous function to get the current Image
$imageFor = function ($hour) use ($images) {
    $index = $hour / EVERY % count($images);
    return $images[$index];
};
// output for all the hours
for ($i = 0; $i < 24; $i++)
    echo "$i't", $imageFor($i), PHP_EOL;
$currentHour = date('G');
echo "[$currentHour] Now showing Image: ", $imageFor($currentHour);

输出

0   image1.png
1   image1.png
2   image2.png
3   image2.png
4   image3.png
5   image3.png
6   image4.png
7   image4.png
8   image5.png
9   image5.png
10  image6.png
11  image6.png
12  image1.png
13  image1.png
14  image2.png
15  image2.png
16  image3.png
17  image3.png
18  image4.png
19  image4.png
20  image5.png
21  image5.png
22  image6.png
23  image6.png
[8] Now showing Image: image5.png

与我一起玩@3v4l.org