0

我有一个问题困扰着我。我有这个 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 张随机图片?

我怎么能做到?

4

2 回答 2

0

如果您不需要多个页面,而只需要刷新页面,您可以这样做:

  1. 从目录中创建图像列表并将它们放入一个数组中。

  2. 在数组大小内生成 20 个随机数。

  3. 仅输出刚刚获得的随机键生成的图像。

代码应该足够简单,所以我不会发布任何示例。

于 2013-01-18T15:39:31.960 回答
0

你可以试试这个-

$dir    = '/tmp';
$files = scandir($dir);
$rand_keys = array_rand($files, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
于 2013-01-18T15:45:40.730 回答