显示目录中的随机文件?

时间:2014-12-21 22:49:51

标签: php scandir

如何显示目录中的随机文件?下面的代码只显示随机1文件,输出应该是10个文件。

<?php
$path = "/files";

$files = scandir($path);
shuffle($files);

for($i = 0; ($i < count($files)) && (!is_file($files[$i])); $i++);

echo $files[$i];
?>

1 个答案:

答案 0 :(得分:2)

for($i = 0; ($i < count($files)) && (!is_file($files[$i])); $i++);
                                                                 ^

将分号放在那里会终止for循环语句,因此它实际上并没有做任何事情,只是循环直到条件为假。删除分号以修复。

作为更清晰的示例,请使用以下代码:

for($i = 0; $i < 5; $i++);
    echo $i;

这将循环五次,因为for循环体语句为空(由于语句终止符,分号)。因为缩进在PHP中并不重要,所以echo $i只会在循环结束时回显一次$i == 5。您可以更好地查看它,如下所示:

for($i = 0; $i < 5; $i++)
    ;
    echo $i;