get.php config从file.txt读取和删除行

时间:2016-02-12 23:24:10

标签: php get

我有一个file.txt有500行,我需要使用按钮配置get.php。当我每次读取第一行时检查它并从file.txt删除它。

例如: file.txt喜欢这样:

G: dns port user1 pass1

G: dns port user2 pass2 

G: dns port user3 pass3

首次点击按钮后我需要在页面中查看此行:

G: dns port user1 pass1

之后file.txt将如下所示:

G: dns port user2 pass2

G: dns port user3 pass3

任何帮助将不胜感激。我是php新手,感谢您的帮助。

$file = fopen("/var/www/test/file.txt","r"); 
while(! feof($file)) { 
    echo fgets($file). "<br />"; 
} 
fclose($file); 

这是我的第二件事

$text = file_get_contents('/var/www/test/file.txt');
$textArray = explode("\n", $text);
$randArrayIndexNum = array_rand($textArray);
$randPhrase = $textArray[$randArrayIndexNum];

1 个答案:

答案 0 :(得分:0)

这是一个非常粗略但有效的实施方案:

<?php

define ('INPUT_FILE', '/tmp/CCcam.cfg');

function unshiftLineFromFile($fileName) {
    $fileContents = file($fileName, FILE_IGNORE_NEW_LINES);
    $firstLine = array_shift($fileContents);
    file_put_contents($fileName, implode(PHP_EOL, $fileContents));
    return $firstLine;
}

echo sprintf("%s<br>\n", htmlentities(unshiftLineFromFile(INPUT_FILE)));

由于显而易见的原因,这不会扩展。首先,它会在每次迭代时将整个文件读入内存,这显然是较大文件的问题。然后它总是重新创建整个文件,但是没有真正简单的方法来做到这一点。操作系统根本不提供执行此类任务的有效方法。这导致第三:你应该使用数据库而不是文件......