PHP打开并编辑现有的.txt文件

时间:2014-05-19 11:33:39

标签: php forms

我创建了一个PHP表单,用于创建具有特定语法的.txt文件。例如:当我在第一个文本字段中输入鼠标并在文本字段编号中输入时,它会创建一个包含以下内容的.txt文件:"data1="mouse",data2="house"

到目前为止一切顺利。现在我想创建另一个PHP站点,显示某个web文件夹中的每个.txt文件,显示每个文件,并带有一个复选框以删除它。这是我的问题,我不知道如何做到这一点:

我希望每个显示的文件名都是超链接。如果用户点击其中一个链接,它应该读取.txt并获取我在第一个PHP(鼠标,房子)中输入的那些元素并将其放回到表单中。这样我就可以编辑和更新现有的.txt文件。

这是我走了多远,不幸的是我是一个糟糕的程序员。有人之前做过这样的事情并且可以共享代码吗?

<?php
include('auth.php');
$ordner = "txt/*";
$tablerows = "";
$i = 1;
foreach (glob("$ordner") as $filename) {
    if (isset($_POST['checkbox'][$i]))
        unlink(realpath($filename));
    $i++;
} $i = 1;
foreach (glob("$ordner") as $filename) {
    $tablerows .= "<tr><td>" . basename($filename) . "</td><td><input type='checkbox' name='checkbox[$i]'></td></tr>\n";
    $i++;
}
?>

<html lang="de">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title></title>
        <link href="css/style.css" rel="stylesheet">
    </head>

    <body>

        <div class="wrapper">
            <div id="main" style="padding:50px 0 0 0;">
                <!-- TERMINE LÖSCHEN FORMULAR -->
                <form id="formular" method="POST">
                    <h1>Termine löschen</h1>
                    <h2>Es wurde(n) <?php echo--$i - 1 ?> Termin(e) gefunden. </h2>
                    <table>
                        <thead>
                            <tr>
                                <th>Datei</th><th>löschen</th>
                            </tr>    
                        </thead>

                        <tbody>
<?php echo $tablerows ?>
                        </tbody>
                    </table><br>
                    <input type="submit" value="Löschen" onclick="return confirm('Die ausgewählten Termine werden gelöscht! Sind Sie sicher?');">
                </form> 
            </div>
        </div>
    </body>
</html>

我现在要做的是,可以编辑那些.txt

2 个答案:

答案 0 :(得分:0)

尝试这段代码而不是你的代码:

<?php
$path = "txt/*.txt";

// delete files
if (isset($_POST['delete']) && is_array($_POST['delete'])) {
    foreach ($_POST['delete'] as $filename) {
        unlink(realpath($filename));
    }
}

// prepare HTML table rows
$tablerows = "";
$i = 0;
foreach (glob($path) as $filename) {
    $tablerows .= "<tr>".
            "<td>" . basename($filename) . "</td>".
            "<td><input type='checkbox' name='delete[]' value='$filename'></td>".
        "</tr>\n";
    $i++;
}
?>

答案 1 :(得分:0)

感谢您的回答。我想要做的是打开一个.txt文件。将其特定部分放入表单中,如果表单已提交,则应更新.txt文件。所以类似下面的代码。我的问题是,我的文本文件有一个特定的格式:

data1 =&#34;第一个文字&#34;,data2 =&#34;第二个文字&#34;,data3 =&#34;第三个文字&#34;

我只想阅读&#34;&#34;!之间的部分。因此,如果在表单中打开,第一个文本输入应该包含第一个文本,第二个文本第二个文本,依此类推......所以当我将第一个文本输入中的内容更改为 test 并提交表单,我的.txt文件应该具有以下内容:

data1 =&#34; test&#34;,data2 =&#34; second text&#34;,data3 =&#34; third text&#34;

<?
if($_POST['Submit']){
$open = fopen("test.txt","w+");
$text = $_POST['update'];
fwrite($open, $text);
fclose($open);
echo "File updated.<br />"; 
echo "File:<br />";
$file = file("test.txt");
foreach($file as $text) {
echo $text."<br />";
}
echo "<p><a href=\"./livepage.php\">click here to view the live updated webpage</a></p>";
echo "<p><a href=\"./mainadminpage.php\">click here to view the admin menu</a></p>";
}else{
$file = file("test.txt");
echo "<form action=\"".$PHP_SELF."\" method=\"post\">";
echo "<textarea Name=\"update\" cols=\"50\" rows=\"10\">";
foreach($file as $text) {
echo $text;
} 
echo "</textarea>";
echo "<input name=\"Submit\" type=\"submit\" value=\"Update\" />\n
</form>";
}
?>