如何在PHP中按下提交按钮后取消设置一行


How can I unset a line in PHP after pressing a submit button?

我现在有了这段代码,但是每当我到达页面时,我的整个text.txt文件都会被删除。我使用会话从另一个php文档的页面获取信息。这是它输入信息后指向的第三页。

我想从输入表单中选择从文本文件中删除哪一行,但我似乎无法让它工作。有什么建议吗?由于

<?php 
$tekstFil = fopen("test.txt","r");
$t = 0;
while (!feof($tekstFil)) {
  $informasjonLinje = fgets ($tekstFil);
  echo "$t : $informasjonLinje <br/>";
  $t++;
}
fclose($tekstFil);
$fil = file("test.txt");
echo "<br/>";
echo "<form action='' type='get'>";
  echo "Velg hvilken linje med informasjon du vil slette: ";
  echo "<input type='number' name='linjeNummer' value=''>";
  echo "<input type='submit' name='slett' value='slett'>";
echo "</form>";
if(isset($_GET["slett"])) {
  echo "Du valgte å slette linje nummer: " .  $_GET["linjeNummer"];
}
$linjeNummer = $_GET["linjeNummer"];
  unset($fil[4]);
$fil = array_values($Fil);
$tekstFil = fopen("test.txt", "w");
foreach ($fil as $verdi) {
  fwrite($tekstFil, $verdi);
}
fclose($tekstFil);

请尝试此代码。还有更简单的方法,只要修改你的代码

<?php 
$tekstFil = fopen("test.txt","r");
$t = 0;
$buffer = array();
while (!feof($tekstFil)) {
  $informasjonLinje = fgets ($tekstFil);
  $buffer[] = $informasjonLinje;
  echo "$t : $informasjonLinje <br/>";
  $t++;
}
fclose($tekstFil);
$fil = file("test.txt");
  echo "<br/>";
  echo "<form action='' type='get'>";
  echo "Velg hvilken linje med informasjon du vil slette: ";
  echo "<input type='number' name='linjeNummer' value=''>";
  echo "<input type='submit' name='slett' value='slett'>";
  echo "</form>";
if(isset($_GET['slett'])) {
    echo "Du valgte å slette linje nummer: " .  $_GET["linjeNummer"];
    $linjeNummer = $_GET["linjeNummer"];
    //unset($fil[4]);
    //$fil = array_values($Fil);
    $tekstFil = fopen("test.txt", "w");
    unset($buffer[$linjeNummer]); 
    $buffer1 = implode("", $buffer);
    fwrite($tekstFil, $buffer1);        
    fclose($tekstFil);
}      
unset($buffer);

?>

由于您使用了GET方法,请尽量不要重新加载页面。