我正在制作一个在线文本编辑器 - 对我自己来说只是一个简单的编辑器。我正在尝试编写代码以将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>
我确信这是一件令人尴尬的事情。
答案 0 :(得分:3)
那是因为您使用readonly
标志以r
模式打开文件:
$openedfile = fopen($filename, "r");
-------------------------------^
您应该使用r+
,w
或a
(追加)标记。
答案 1 :(得分:0)
fopen($filename, "r");
仅用于阅读...... 使用
fopen($filename, "r+");
答案 2 :(得分:0)
您已以只读模式打开文件句柄。
答案 3 :(得分:0)
$openedfile = fopen($filename, "r");
您正在打开只读模式的文件,请使用
r+
代替r
答案 4 :(得分:0)
我建议您查看file_put_contents,因为它简化了所有fwrite
,handle
和fclose
内容。通常非常容易使用此功能。从文档中可以看出:
$file = $filename;
$text .= "Hello\n";
file_put_contents($file, $text);