php - PHP - 以随机顺序显示目录文件夹
问题描述
该代码完美运行。只是不知道如何让它在不使用 Jquery 的情况下随机显示内容。
让它显示当前目录中的随机图像,但不确定如何让目录随机显示。
$dir = 'img/series_thumbnail/';
$dh = opendir($dir);
while (($fileName = readdir($dh)) !== false) {
if (!in_array($fileName, array('.', '..'))) {
$images = glob($dir . $fileName . '/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$imgMax = count($images)-1;
$imgNum = rand(0, $imgMax);
$imgUrl = $images[$imgNum];
echo '<li>';
echo '<img src="' . $imgUrl . '"/>';
echo '<div class="info"><p>' . $fileName . '</p></div>';
echo '</li>';
}
}
谢谢你。
编辑
弄清楚了!谢谢大家的帮助。
$dir = glob("img/series_thumbnail/*", GLOB_ONLYDIR);
shuffle($dir);
foreach ($dir as $folder) {
if (!in_array($folder, array(".", ".."))) {
$folderName = basename($folder).PHP_EOL;
$images = glob($folder . "/*.{jpg,jpeg,png,gif}", GLOB_BRACE);
shuffle($images);
echo "<li>";
echo '<img src="' . $images[0] . '"/>';
echo "<div class='info'><p>" . $folderName . "</p></div>";
echo "</li>";
}
}
解决方案
如果要显示每个目录中的单个随机图像,并且目录以随机顺序排列,则可以使用以下代码:
$dir = 'img/series_thumbnail/';
$directories = glob("$dir*", GLOB_ONLYDIR);
shuffle($directories);
foreach ($directories as $directory) {
$images = glob($dir . $directory. '/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$imgMax = count($images)-1;
$imgNum = rand(0, $imgMax);
$imgUrl = $images[$imgNum];
echo '<li>';
echo '<img src="' . $imgUrl . '"/>';
echo '<div class="info"><p>' . $fileName . '</p></div>';
echo '</li>';
}
推荐阅读
- python - 将行与不同格式的熊猫列合并
- kubernetes - 如何以一种对 GKE Kubernetes Master 中断有弹性的方式使用 Python Kubernetes 客户端?
- php - codeigniter 中的 group_start 抛出错误
- php - Laravel 将查询 mysql 转换为模型查询
- django - 即使用户没有权限,我也可以从视图中删除模型的对象吗?姜戈
- directory - 在 Android/data/com.yourpakagename/mydirectory 中创建文件夹
- javascript - Javascript toFixed() 未按预期工作
- android-notifications - 自定义通知点击监听器在上面的 android api 26 中不起作用
- angularjs - 在 ng-repeat 之后添加横幅
- java - JavaFX 如何将 FXML 控制器实例放入 HashMap?