从php文本文件中删除行

从php文本文件中删除行,php,Php,我试图列出一个文本文件中的所有行,并在每个行旁边有一个删除按钮。按下按钮时,应删除该行。如下 Line One Text | Delete Line Two Text | Delete Line Three Text | Delete 我想我已经很接近了,但是无法让它工作,你知道为什么吗?行和按钮显示良好,但删除按钮似乎没有任何作用 edit.php <?php $textFile = file("guestbook.txt"); foreach ($textFile as $ke

我试图列出一个文本文件中的所有行,并在每个行旁边有一个删除按钮。按下按钮时,应删除该行。如下

 Line One Text | Delete
 Line Two Text | Delete
 Line Three Text | Delete
我想我已经很接近了,但是无法让它工作,你知道为什么吗?行和按钮显示良好,但删除按钮似乎没有任何作用

edit.php

<?php
$textFile = file("guestbook.txt");
foreach ($textFile as $key => $val) {
    $line = @$line . $val
        . "<input type='submit' name=$key value='Delete'><br />";
}

$form = "<form name='form' method='post' action='deleter.php'> $line 
    </form>";

echo $form;
?>

一种方法是,如果没有一行可以与另一行相等,则使用要删除的字符串查询服务器,例如,
delete.php?str=
并删除该字符串(注意,我说的“字符串”不是行)

如果行可能相等,那么应该识别行并遵循类似的方法:
delete.php?line=

这应该很容易,您可以编写一个灵活的代码,通过传递文件名来删除给定文件中的行

编辑:建议使用隐藏字段后提供的示例

<?php
$html = "<form id='form' method='post' action='delete.php'>";
foreach(array("line 1", "line 2", "line 3") as $key => $value ) {
    $html .= "<span>${value}</span>";
    $html .= "<input type='hidden' name='lineNumber' value='${key}'>";
    $html .= "<input type='submit' value='Delete' name='line'><br>";
}
$html .= "</form>";
echo $html;
?>

您可以使用一些JavaScript来循环每个输入,并将每个值附加到隐藏的表单字段中。提交表单时,只需获取表单字段的值,并用该值覆盖文件。

将留言簿存储在文本文件中可能出现的重复可能不是一个好主意。如果两个人同时试图编辑留言簿,则需要锁定整个文件,否则您将面临损坏的风险。如果我是你,我会使用数据库。MySQLGuestbook附带的大多数php安装都是一个松散的术语,网站所有者可以将自己的评论上传到一个物理留言簿中。非常感谢,现在就开始并报告。@loveforfire33如果您使用的是
JavaScript
,您可以动态更改
action
属性。如果您打算使用它,
JQuery
将在提交表单时以及通过更改
action
属性为您提供很大帮助。只要你开口,我很乐意帮忙。
<?php
$html = "<form id='form' method='post' action='delete.php'>";
foreach(array("line 1", "line 2", "line 3") as $key => $value ) {
    $html .= "<span>${value}</span>";
    $html .= "<input type='hidden' name='lineNumber' value='${key}'>";
    $html .= "<input type='submit' value='Delete' name='line'><br>";
}
$html .= "</form>";
echo $html;
?>