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