簡體   English   中英

get.php配置以讀取和刪除file.txt中的行

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

我有一個500行的file.txt ,我需要一個帶有按鈕的get.php配置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)));

由於明顯的原因,這不會擴展。 首先,每次迭代它都會將整個文件讀入內存,這顯然是較大文件的問題。 然后,它總是重新創建整個文件,但是沒有真正簡單的方法來執行此操作。 操作系統根本不提供執行此類任務的有效方法。 這導致第三點:您應該使用數據庫而不是文件...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM