我有一个问题一直困扰着我。我有这个PHP脚本,它列出了目录中的所有图像,并在页面上写:
<?PHP
$directory="photos";
$sortOrder="newestFirst";
$results = array();
$handler = opendir($directory);
while ($file = readdir($handler)) {
if ($file != '.' &&
$file != '..' &&
$file != "robots.txt" &&
$file != ".htaccess") {
$currentModified = filectime($directory."/".$file);
$file_names[] = $file;
$file_dates[] = $currentModified;
}
}
closedir($handler);
//Sort the date array by preferred order
if ($sortOrder == "newestFirst"){
arsort($file_dates);
} else {
asort($file_dates);
}
//Match file_names array to file_dates array
$file_names_Array = array_keys($file_dates);
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name];
$file_dates = array_merge($file_dates);
$i = 0;
//Loop through dates array and then echo the list
foreach ($file_dates as $$file_dates){
$date = $file_dates;
$j = $file_names_Array[$i];
$file = $file_names[$j];
$i++;
echo "<img src=photos/$file>n";
}
?>
在一个有100个文件的文件夹中,每次只列出20个文件,而且是随机的,这意味着每次刷新页面时随机加载20张图片,这怎么可能呢?
我怎么能做到呢?
如果您不需要多个页面,但只是在页面刷新时,您可以这样做:
-
从目录中创建图像列表,并将它们放入数组中
-
在数组大小范围内生成20个随机数
-
仅输出从您刚刚获得的随机密钥生成的图像
代码应该足够简单,所以我不张贴任何例子。
你可以试试-
$dir = '/tmp';
$files = scandir($dir);
$rand_keys = array_rand($files, 2);
echo $input[$rand_keys[0]] . "n";
echo $input[$rand_keys[1]] . "n";