PHP列出文件夹内容,只显示其中的一部分



我有一个问题一直困扰着我。我有这个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张图片,这怎么可能呢?

我怎么能做到呢?

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

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

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

  3. 仅输出从您刚刚获得的随机密钥生成的图像

代码应该足够简单,所以我不张贴任何例子。

你可以试试-

$dir    = '/tmp';
$files = scandir($dir);
$rand_keys = array_rand($files, 2);
echo $input[$rand_keys[0]] . "n";
echo $input[$rand_keys[1]] . "n";

相关内容

  • 没有找到相关文章

最新更新