我想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)
错误是什么?
更新:如果可以避免循环,并仅更正此代码.
您的代码中的问题是,您只需将文件的第一行放入数组:
$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)