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