使用PHP从目录中随机生成多个文件
我正在建立一个网站,人们可以去那里上传图片、礼物和视频。在主页上,我想随机列出上传目录中的文件使用PHP从目录中随机生成多个文件,php,html,image,loading,random-sample,Php,Html,Image,Loading,Random Sample,我正在建立一个网站,人们可以去那里上传图片、礼物和视频。在主页上,我想随机列出上传目录中的文件 <article class="item thumb" data-width="384"> <h2><?php echo $file_title;?></h2> <a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage
<article class="item thumb" data-width="384">
<h2><?php echo $file_title;?></h2>
<a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a>
</article>
<article class="item thumb" data-width="274">
<h2><?php echo $file_title;?></h2>
<a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a>
</article>
它总共做了五次$随机图像由以下代码生成:
<?php
$imagesDir = 'uploads/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
$file_title = $randomImage;
?>
我希望能够添加一个功能,当用户向下滚动时,越来越多包含图像的文章显示出来,每个文章都包含一个随机但以前没有显示的文件。如何在不必手动输入唯一变量的情况下随机显示文件
另外,我现在没有任何文件存储在数据库中 从
$images
中删除随机选择的图像,然后再选择其他图像
循环5个图像
<?php
// get all files
$imagesDir = 'uploads/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$imagesCount = count($images);
for($i = 0 ; $i < $imagesCount ; $i++) {
// select image
$randomIndex = array_rand($images); // select image index
$file_title = $randomImage = $images[$randomIndex]; // use selected image
unset($images[$randomIndex]); // remove selected image
// print_r($images); // you can see what left in $images
// show image
?>
<article class="item thumb">
<h2><?php echo $file_title;?></h2>
<a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a>
</article>
<?php
}
?>
我使用了这个代码,它在每个块上加载相同的图像。调用“alt=”时应该使用什么变量“>而不是$randomimage?您必须在每个块之前获得新的$randomimage
。在我的答案中看到新代码。完美!我需要它在加载越来越多的块时继续加载图像,而不是只循环5个图像。将会有一个功能,当用户滚动时,会出现更多的内容框。如何将此代码设置为永久循环,并继续确保相同的图像不会被加载两次?使用count($images)
可以获得所有图像-请参见上面的代码-但它会同时提供所有图像。如果在用户滚动时需要加载更多块,则需要JavaScript+Ajax和PHP在文件中记住$images
。或者您可以将$images
发送到javascript并用javascript完成所有工作(选择random image并显示下一个块)