如何从文本文件中检索随机行,然后在PHP中从文本文件中删除该行
我很难思考该怎么做。我想显示一个特定文本文件中的随机行,然后在它显示后,它将从文本文件中删除该行,这样当页面刷新时它将不再显示如何从文本文件中检索随机行,然后在PHP中从文本文件中删除该行,php,file-io,Php,File Io,我很难思考该怎么做。我想显示一个特定文本文件中的随机行,然后在它显示后,它将从文本文件中删除该行,这样当页面刷新时它将不再显示 $lines = file(''); echo $lines[array_rand($lines)]; 文件将行读入数组array\u rand从行数组中获取随机键unset删除元素文件\u放入内容以写回文件 $filename = 'filename.txt'; $lines = file($filename); $r = array_rand($lines);
$lines = file('');
echo $lines[array_rand($lines)];
文件
将行读入数组array\u rand
从行数组中获取随机键unset
删除元素<代码>文件\u放入内容以写回文件
$filename = 'filename.txt';
$lines = file($filename);
$r = array_rand($lines);
echo $lines[$r];
unset($lines[$r]);
file_put_contents($filename, implode("", $lines));
那很好。祝你好运。你有问题吗?打开文件,把每一行都推到一个数组中。回显随机行,将该行存储为字符串。通过使用if语句重新编写另一个没有该行的数组——对于“如果值与存储的字符串匹配”,如果匹配,则不要将该行推送到新数组。循环新数组,将每一行写入文件。不过,我不会为你写代码。不管出于什么原因,你认为这是个好主意……如果你只是想输出内容,然后删除,试着使用数据库。有没有办法每次都从同一个文本文件中删除空行?因为这种方式会在每一个文本行之间创建空行。为什么不输出$lines所包含的内容,并查看如何不能内爆空行\n的@user3791824应该能够将
内爆(“\n”,$lines)
更改为内爆(''.$lines)
,因为文件
包含新行,除非调用文件($filename,FILE_IGNORE_NEW_line);
@fyrye,谢谢你指出这一点。另外,rand应该是rand(0,count($line)-1);