使用目录中的所有图像动态创建横幅

时间:2017-04-01 16:15:28

标签: javascript php html

我目前正在制作一些代码,试图制作一个广告横幅,它们会旋转我横幅文件夹中的所有图片。我知道如果我陈述阵列中的每个图像,我可以制作一个旋转的横幅,但我想要做的是创建一个使用文件夹内所有图像的横幅,这样我就不必每次都返回并重新编码新图像上传到横幅文件夹。横幅图像不需要分配URL,因为它们仅用于在此阶段显示。我试图在这个div中显示横幅:

ResultSetMappingBuilder

任何人都可以请我为我提供一个方法吗?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

目前还不清楚您是否只想返回目录中的所有图像,或者是否要选择特定图像(例如最新上传的图像)。

您要做的第一件事就是查看scandir()Docs)并使用该功能列出目录中的所有文件,然后选择您感兴趣的文件。 scandir()具有$sorting_order参数,您可以在其中定义按升序或降序按字母顺序返回文件。

如果您想选择最新上传的那个,可以使用此处找到的解决方案(PHP: Get the Latest File Addition in a Directory)。

$lastMod = 0;
$lastModFile = null;
// Loop through all entries/files in the directory of the path.
foreach (scandir('path/to/directory/') as $entry) {
    // If the entry is a file, and the time updated is later than previous file.
    if (is_file($dir.$entry) && filectime($dir.$entry) > $lastMod) {
        // ... if it is, then set the current file as the latest file.
        $lastMod = filectime($dir.$entry);
        $lastModFile = $entry;
    }
}

答案 1 :(得分:0)

也许是这样的事情?

<!DOCTYPE html>
<html>
<body>
<?php
echo '<div id="banner">';

$dir    = 'Images/banner';
$images = glob("$dir/*.{jpg,jpeg,png,gif,bmp}", GLOB_BRACE);
foreach($images as $image){
  echo "<img class='bannerImages' src='$image'>";
}

echo '</div>';
?>
<script>
var myIndex = 0;
carousel();
function carousel() {
    var x = document.getElementsByClassName("bannerImages");
    for (var i = 0; i < x.length; i++) {
       x[i].style.display = "none";
    }
    myIndex++;
    if (myIndex > x.length) {
        myIndex = 1;
    }    
    x[myIndex-1].style.display = "block";  
    setTimeout(carousel, 2000);
}
</script>
</body>
</html>