我有一个巨大的txt文件,有475254行和php我想读取我的txt文件的第一行并将其保存到变量中,然后当我保存它时,php删除该行。
我的txt文件大约是2.3 MB是否可以这样做?
答案 0 :(得分:2)
好少少拖钓..
你想fopen和fgets会抓住一条线。参考:fgets Manual PHP
$file = "file.txt"
$f = fopen($file, 'r');
$line = fgets($f);
fclose($f); // You close because you only want the first one.
有很多例子如何做到这一点我感到尴尬的回答。你应该首先展示你尝试过的一些东西!
现在要删除它:使用file_get_contents REF:PHP file_get_contents
//Get your file contents
$newDoc = file_get_contents($file, true);
$newFileContents = substr( $line, strpos($newDoc, "\n")+1 );
//then you want to save it
file_put_contents($newFileContents, $file);
我可能错了,但你明白了!〜;)
流程:
我确信有一种更有效的方法可以做到这一点,我只是在翼!
注意:您可能需要配置php.ini以使用更大的文件!
答案 1 :(得分:1)
是的,Mark可能太懒了,甚至不会尝试使用代码,但我已经有了一个正常工作的代码.. copypasta
$file = "mydata.txt";
$f = fopen($file, 'r');
$line = fgets($f);
fclose($f);
//do smth
$contents = file($file, FILE_IGNORE_NEW_LINES);
$first_line = array_shift($contents);
file_put_contents($file, implode("\r\n", $contents));
//sleep(1);