PHP列表文件夹内容并仅显示其中的一部分

时间:2013-01-18 15:35:01

标签: php file list

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

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果您不需要多个页面,但只需要页面刷新,您可以这样简单:

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

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

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

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

答案 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";