从文本文件中获取随机行

X10*_*0nD 3 php arrays file

我想random.txt在用户刷新页面时调用随机单词,但我$word_array[0]只得到而不是任何其他$ word_array [1..3].

random.txt

hello
how
are
you
Run Code Online (Sandbox Code Playgroud)

PHP代码:

myfile = fopen("random.txt", "r") or die("Unable to open file!");
$word_array = array(fgets($myfile));

$word = rand(0,4);
$lines[] = fgets($myfile);
echo $word_array[$word];

fclose ($myfile); 
Run Code Online (Sandbox Code Playgroud)

错误是什么?

更新:如果可以避免循环,并仅更正此代码.

Riz*_*123 5

您的代码中的问题是,您只需将文件的第一行放入数组:

$word_array = array(fgets($myfile));
Run Code Online (Sandbox Code Playgroud)

意味着你在这里拥有的是:

Array (
    [0] => First line
)
Run Code Online (Sandbox Code Playgroud)

因此,如果您打开错误报告,您会收到通知:

注意:未定义的偏移量

75%的时间.

但要做你想做的事,你可以用file()你的文件组合成一个数组array_rand(),例如

$lines = file("random.txt");
echo $lines[array_rand($lines)];
Run Code Online (Sandbox Code Playgroud)