私のPHPは明らかにそれほど優れていません.gallery/というフォルダー内のサブフォルダーから画像を取得するために、一見遅い方法を使用しています。私が望むのは、理想的には、単一の画像 (すべての画像ではない) がサブディレクトリのいずれかからランダムに選択され、小さな HTML タグで表示されることです。glob() については知っていますが、思い通りに動作させることができないため、サブフォルダーからすべての画像を取得するために使用しているものを次に示します。
<?php
echo "<html><head></head><body>";
function ListFiles($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != ".." && $file[0] != '.') {
if(is_dir($dir . "/" . $file)) {
$inner_files = ListFiles($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
shuffle($files);
return $files;
}
}
foreach (ListFiles('gallery') as $key=>$file){
echo "<div class=\"box\" style=\"margin: 3px;border: 1px dotted #999; display: inline- block; \"><img src=\"$file\"/></div>";
}
echo "</body></html>";
?>
これは素晴らしいことですが、あまりスケーラブルではありません。ここで glob を使用できることはわかっています。