我有一个问题困扰着我。我有这个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个随机图片?
我怎么能这样做?
答案 0 :(得分:0)
如果您不需要多个页面,但只需要页面刷新,您可以这样简单:
从目录中创建图像列表并将它们放入数组中。
生成20个数组大小的随机数。
仅输出刚刚获得的随机密钥生成的图像。
代码应该足够简单,所以我不会发布任何示例。
答案 1 :(得分:0)
你可以试试这个 -
$dir = '/tmp';
$files = scandir($dir);
$rand_keys = array_rand($files, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";