获取.php配置以从文件中读取和删除行.txt


get.php config to read and delete line from a file.txt

我有一个 500 行的file.txt,我需要配置一个带有按钮的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];

这是一个非常粗糙但有效的实现:

<?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)));

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