将textarea的内容保存到文件时fwrite不写

时间:2011-11-21 11:36:24

标签: php textarea fwrite

我正在制作一个在线文本编辑器 - 对我自己来说只是一个简单的编辑器。我正在尝试编写代码以将textarea的内容保存到文件中 - 首先将文件打开到textarea(工作正常),然后我想保存已编辑的文本。写作不起作用。这是重要的代码(我为这个烂摊子道歉,这对我和PHP来说是非常早期的):

<form method="post" action="<?php echo $_SERVER['$PHP_SELF'];?>">
<textarea rows="30" cols="80" name="textdata"><?=$contents?></textarea>
<br />
<?php
$newcontents = $_POST["textdata"];
$openedfile = fopen($filename, "r");
fwrite($openedfile, "hello");
?>
<input type="submit" name="save" value="Save Changes" />
</form>

我确信这是一件令人尴尬的事情。

5 个答案:

答案 0 :(得分:3)

那是因为您使用readonly标志以r模式打开文件:

$openedfile = fopen($filename, "r");
 -------------------------------^

您应该使用r+wa(追加)标记。

See the documentation for more flags/information.

答案 1 :(得分:0)

 fopen($filename, "r");

仅用于阅读...... 使用

fopen($filename, "r+");

答案 2 :(得分:0)

您已以只读模式打开文件句柄。

答案 3 :(得分:0)

$openedfile = fopen($filename, "r");您正在打开只读模式的文件,请使用 r+代替r

答案 4 :(得分:0)

我建议您查看file_put_contents,因为它简化了所有fwritehandlefclose内容。通常非常容易使用此功能。从文档中可以看出:

$file = $filename;
$text .= "Hello\n";
file_put_contents($file, $text);