从目录中随机选择一个文件,然后显示它


Selecting a file from a directory randomly and then display it

我有一个目录,其中包含几个文本文件。我想做的是随机选择其中一个文件,然后显示它。这是我到目前为止得到的,但我仍然没有成功。有什么想法吗?谢谢

<?php
function random_pic($dir = 'wp-content'files')
{
    $files = opendir($dir . '/*.txt');
    $file = array_rand($files);
    return $files[$file];
}
while(!feof($file)) { 
        echo fgets($file) . "<br />";
    }
    fclose($file);
?>

scandir将把目录中的所有元素放入一个数组中。然后使用array_rand从数组中选择一个随机元素。

$dir = "/path/to/pictures/";
$dirarray = scandir( $dir );
unset($dirarray [0]);
unset($dirarray [1]);
$content = file_get_contents( $dir . $dirarray[array_rand($dirarray )] );
echo $content;

unset命令用于从阵列中移除...。例如,这将导致回显picturename.jpg

您的目录中有错误的斜杠。

$dir = 'wp-content'files'

应该是

$dir = 'wp-content/files'

应该是正斜杠而不是反斜杠。还要检查您正在访问的目录的权限。

试试这个:-

使用glob函数获取一个目录中的所有文件,然后从该数组中提取一个随机元素并返回。然后读取文件并回显其内容。

function get_random_file($dir = 'folder_name')
{
    $files = glob($dir . '/*.txt');
    $file = array_rand($files);
    return $files[$file];
}
   $fh = fopen($myFile, 'r');
   $theData = fread($fh, filesize($myFile));
   fclose($fh);
   echo $theData;

在while循环条件中使用带参数的函数名,并检查函数是否返回文件名。查看以下链接了解详细信息http://php.net/manual/en/function.readdir.php