php - 如何使用 PHP 从 HTML 文本区域保存 TXT 文件?

标签 php html post textarea

我正在尝试为我的网站制作一个文本文件存储系统。

这是我目前所拥有的。

我已经得到了一些可以工作的部分,但是在进行了一些我认为会有所帮助的更改之后,我遇到了更多错误。

我试图在不更改页面或 url 的情况下完成此任务。

<!DOCTYPE HTML>
<html>
    <body>
        <?php
    if (isset($_POST)){
        //Save File
        $file = fopen($_POST['filename'] & ".txt","r+");
        $text = $_POST["textdata"];
        file_put_contents($file, $text);
        fclose($file);
        //Open File
        $file = fopen($_POST['filename'] & ".txt", "r") or exit("Unable to open file.");
        while(!feof($file)){
            echo fgets($file). "<br />";
        }
        fclose($file);
    }

    echo '
    <form name="savefile" method="post" action="' . $_SERVER['PHP_SELF'] . '">
        File Name: <input type="text" name="filename" value=""><br/>
        <textarea rows="20" cols="100" name="textdata"></textarea><br/>
        <input type="submit" name="submit" value="Save Text to Server">
</form>
    <br/><hr style="width: 100%; height: 4px;"><br/>
    <form name="openfile" method="post" action="' . $_SERVER['PHP_SELF'] . '">
        Open File: <input type="text" name="filename" value="">
        <input type="submit" name="submit" value="Submit File Request">
</form>';
    ?>
    </body>
<html>

如果唯一的方法是让它重定向到一个 php 页面,然后将它发回,那很好,但我不知道该怎么做,(尽管它可能简单得多)

感谢您提供给我的任何帮助或建议!

- jack

最佳答案

首先,非常感谢您的帮助!

当那些更有经验的人偶尔能帮助新手时,我真的很感激。

在花了一些时间根据您的一些建议修改我的代码后,我终于让它工作了! :D

我会在此处留下最终代码,以防其他人因类似问题偶然发现此主题。


<!DOCTYPE HTML>
<html>
<body style="background-color: rgb(225,225,225)">
    <form name="savefile" method="post" action="">
        File Name: <input type="text" name="filename" value=""><br/>
        <textarea rows="16" cols="100" name="textdata"></textarea><br/>
        <input type="submit" name="submitsave" value="Save Text to Server">
</form>
    <br/><hr style="background-color: rgb(150,150,150); color: rgb(150,150,150); width: 100%; height: 4px;"><br/>
    <form name="openfile" method="post" action="">
        Open File: <input type="text" name="filename" value="">
        <input type="submit" name="submitopen" value="Submit File Request">
</form>
    <br/><hr style="background-color: rgb(150,150,150); color: rgb(150,150,150); width: 100%; height: 4px;"><br/>
    File Contents:<br/>
    <?php
    if (isset($_POST)){
        if ($_POST['submitsave'] == "Save Text to Server"  && !empty($_POST['filename'])) {
            if(!file_exists($_POST['filename'] . ".txt")){
                $file = tmpfile();
            }
            $file = fopen($_POST['filename'] . ".txt","a+");
            while(!feof($file)){
                $old = $old . fgets($file). "<br />";
            }
            $text = $_POST["textdata"];
            file_put_contents($_POST['filename'] . ".txt", $old . $text);
            fclose($file);
        }

        if ($_POST['submitopen'] == "Submit File Request") {
            if(!file_exists($_POST['filename'] . ".txt")){
                exit("Error: File does not exist.");
            }
            $file = fopen($_POST['filename'] . ".txt", "r");
            while(!feof($file)){
                echo fgets($file). "<br />";
            }
            fclose($file);
        }
    }
    ?>
</body>
</html>

希望这对您有所帮助!

- jack

关于php - 如何使用 PHP 从 HTML 文本区域保存 TXT 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12773838/

相关文章:

php - 合并两个站点的数据库用户/登录名 - 不同的目录 - Joomla 3.0/Jomsocial 3.0

javascript - 在javascript中删除字符串中的空格

HTML 选择具有多种颜色的下拉列表

post - axios拦截器在401重试时更改POST请求的内容类型

php - 使用 is_numeric 验证表单输入中的整数

REST:防止通过条件 POST 创建重复资源?

php - 使用 knockout js 数据绑定(bind)未显示正确的值

php - 将变量从 php 传递到 javascript

php - mysql 到 mysqli 需要参数错误

html - 如何设计网页以在粘贴到 MS Word 时将格式丢失降至最低