我写过这个小代码来显示一个数组中的随机图像,但由于一些奇怪的原因,我无法弄清楚我哪里出错了。我已经改变了几次代码,但无济于事。我之前也有代码,不需要一个数组来显示文件夹中的图片,但遗憾地丢失了它。
<?php
$images = array('red.turtle','justice.league','logan','kong.skull.island','alien.covenant','spider-man.homecoming','thor.ragnarok','star.wars.viii','xxx.the.return.of.xander.cage','the.lego.batman.movie','wonder.woman','beauty.and.the.beast','war.for.the.planet.of.the.apes','transformers.the.last.knight','kingsman.the.golden.circle','the.mummy','t2.trainspotting','split','the.salesman','the.lure');
function randomImage() {
$interval = 2; // seconds
srand(floor(time() / $interval));
?>
<img src="<?php echo get_template_directory_uri(); ?>/img/mov_pic/<?php $images[rand(0,19)]?>.jpg";
<?php }; ?>
</div>
PS。间隔值仅用于编码目的,以查看代码是否正常工作。
答案 0 :(得分:0)
问题在于您尝试将$ images数组引用到范围之外。尝试将其添加到您的功能中。
IE:
function randomImage() {
$images = array('red.turtle','justice.league','logan','kong.skull.island','alien.covenant','spider-man.homecoming','thor.ragnarok','star.wars.viii','xxx.the.return.of.xander.cage','the.lego.batman.movie','wonder.woman','beauty.and.the.beast','war.for.the.planet.of.the.apes','transformers.the.last.knight','kingsman.the.golden.circle','the.mummy','t2.trainspotting','split','the.salesman','the.lure');
echo $images[rand(0,19)];
}
答案 1 :(得分:0)
你必须添加一个&#34; echo&#34;在图像数组中的rand之前:
<?php echo $images[rand(0,19)]?>
答案 2 :(得分:0)
您的代码正在运行但是在randomImage范围内无法访问$ images变量,您必须将其称为randomImage函数内的全局函数或将其作为函数参数传递。
public static <K, V> Map<K, V> sortByValues(Map<K, V> map, Comparator<? super V> comparator) {
return map.entrySet()
.stream()
// sort entries by applying given comparator to values
.sorted(Comparator.comparing(Map.Entry::getValue, comparator))
// collect into a LinkedHashMap using Collectors.toMap
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> {
// map should never contain duplicate keys
throw new AssertionError();
// Collectors.toMap always adds elements in encounter order; using LinkedHashMap here preserves ordering
}, LinkedHashMap::new));
}
答案 3 :(得分:0)
如果您不想定义图像,可以使用glob
查找目录中的所有jpg
个文件。
function randomImage()
{
$directory = get_template_directory() . "/img/mov_pic";
$images = glob($directory . "*.jpg");
return !empty($images) ? get_template_directory_uri() . "/" . $images[array_rand($images)] . ".jpg" : "";
}
echo '<img src="' . randomImage() . '">';