所以我要做的就是从目录中获取一个文本文件列表。
取出该列表并随机选择1个文件。
然后获取该文件并打印出内容。现在我几年前做到了这一点。但无法找到我的旧脚本。我尝试了以下我只有打印出一个文件名..但事件不起作用?
$path = '/seg1';
$files = scandir($path);
$seg = array ( $files );
$rand_keys = array_rand($seg, 1);
print $rand_keys;
对此以及任何输入都会喜欢一些新的眼睛。
答案 0 :(得分:1)
/*** Search All files in Dir. with .txt extension ***/
foreach (glob('./seg1/*.txt') as $filename)
{
$myFiles[] = $filename;
/*** Array of file names **/
}
/*** Total count of files ***/
$max=sizeof($myFiles);
/*** Select a Random index for Array with Max limit ***/
$fileNo=rand(0, $max);
/*** Path of the Random file to Access ***/
$file=$myFiles[$fileNo];
/*** Get the content from Text file ****/
$data = file_get_contents($file, true);
答案 1 :(得分:0)
正如您的变量命名所示,您从数组中随机选择一个键;尝试通过
获取价值$filename = $seg[$rand_keys];
答案 2 :(得分:0)
建议您使用 glob ,这样您才能获得所需的文件,这会排除.
和..
等系统目录
foreach (glob("seg1/*.txt") as $filename) {
$seg[] = $filename;
}
或者更简单的解决方案:
$rand_keys = array_rand(glob("seg1/*.txt"), 1);
答案 3 :(得分:0)
$path = '/seg1';
$files = scandir($path));
if($files)
echo file_get_contents($files[mt_rand(2,count($files))]);