【问题标题】:how to change a php file from write to to overwrite如何将php文件从写入更改为覆盖
【发布时间】:2016-05-27 17:29:43
【问题描述】:

您好我有一段代码写入文本文件,但我希望 php 文件完全覆盖文本文件的内容,而不仅仅是添加到它,我必须如何修改我的代码以使其覆盖只是写。这是我的代码:

    <form name="savefile" method="post" action="">
 <input type="hidden" name="filename" value="code"><br/>
        <textarea rows="40" cols="40" name="textdata" style ="font-family: "Lato", sans-serif;">
        <?php echo file_get_contents('code.txt'); ?>
        </textarea><br/>
        <input type="submit" name="submitsave" value="Save">
</form>
    <?php
    if (isset($_POST)){
        if ($_POST['submitsave'] == "Save"  && !empty($_POST['filename'])) {
            if(!file_exists($_POST['filename'] . ".txt")){
                $file = tmpfile();
            }
            $file = fopen($_POST['filename'] . ".txt","a+");
            while(!feof($file)){
                $old = $old . fgets($file). "|___end message___|___begin message___|";
            }
            $text = $_POST["textdata"];
            file_put_contents($_POST['filename'] . ".txt", $old . $text);
            fclose($file);
        }
        }
    ?>

【问题讨论】:

  • 可能想查看 php.net 的手册中的fopen();
  • 你可以简单地摆脱整个$file = fopen($_POST['filename'] . ".txt","a+"); while(!feof($file)){ $old = $old . fgets($file). "|___end message___|___begin message___|"; }块,然后简单地file_put_contents($_POST['filename'] . ".txt", $text);

标签: php forms overwrite


【解决方案1】:

覆盖只不过是写入同一个文件,不同的是文件指针在你覆盖时位于文件的开头。您可以尝试使用模式“w”。 php.net/manual/en/function.fopen.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    相关资源
    最近更新 更多