2011-11-21 67 views
2

我正在制作一个在线文本编辑器 - 对我自己的东西来说只是一个简单的文本编辑器。我试图编写代码将textarea的内容保存到一个文件中 - 首先将文件打开到textarea(它工作正常),然后我想保存编辑后的文本。写作不起作用。这里是重要的代码(我道歉的混乱,这是非常早期的天,我和PHP):将文本区域的内容保存到文件时,fwrite不会写入

<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
fopen($filename, "r"); 

是UED仅供阅读...

使用

fopen($filename, "r+"); 
0

你打开一个只读模式的文件句柄。

0

$openedfile = fopen($filename, "r");您是只读方式打开文件,使用 r+代替r

0

我建议你寻找到file_put_contents,因为它简化了所有的fwritehandlefclose东西。通常使用这个功能非常容易。从文档中获取:

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

我试着用下面的代码:'$ newcontents = $ _POST [“textdata”]; file_put_contents($ filename,$ newcontents);',可悲的是,它仍然不起作用。我知道$ newcontents包含文件的更新版本,并且$ filename在代码中早些时候用于'file_get_contents()'。它可能是一个权限问题?也许是 – lowercasename

+0

。用http://php.net/manual/en/function.fileperms.php查看你的权限 –

+0

目录和文件都是755,这听起来很正确。我发现它并不是说file_put_contents什么都不做 - 它将文件清理干净。它必须是在$ newcontents中的任何东西都会在textarea和函数之间丢失。 – lowercasename