读取txt文件的第一行,然后用php删除该行

时间:2014-07-30 20:09:06

标签: php file line

我有一个巨大的txt文件,有475254行和php我想读取我的txt文件的第一行并将其保存到变量中,然后当我保存它时,php删除该行。
我的txt文件大约是2.3 MB是否可以这样做?

2 个答案:

答案 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);

我可能错了,但你明白了!〜;)

流程:

  1. 获取文件内容
  2. 获取第一线
  3. 用第一行替换所有文件的内容为新行
  4. 保存文件
  5. 我确信有一种更有效的方法可以做到这一点,我只是在翼!

    注意:您可能需要配置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);