fwrite не пишется при сохранении содержимого текстовой области в файл - PullRequest
2 голосов
/ 21 ноября 2011

Я делаю онлайн текстовый редактор - просто простой для моих собственных вещей. Я пытаюсь написать код для сохранения содержимого текстовой области в файл - сначала файл открывается в текстовую область (которая работает нормально), а затем я хочу сохранить отредактированный текст. Письмо не работает. Вот важный код (мои извинения за беспорядок, это очень рано для меня и 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 ]

3 голосов
/ 21 ноября 2011

Это потому, что вы открываете файл в режиме readonly, используя r флаг:

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

Вы должны использовать флаг r+, w или a (добавление).

См. Документацию для получения дополнительных флагов / информации.

0 голосов
/ 21 ноября 2011

Я бы посоветовал вам взглянуть на file_put_contents , так как он упрощает все вещи fwrite, handle и fclose.Как правило, эта функция очень проста в использовании.Как принято из документации:

$file = $filename;
$text .= "Hello\n";
file_put_contents($file, $text);
0 голосов
/ 21 ноября 2011

$openedfile = fopen($filename, "r"); вы открываете файл только для чтения, используйте r+ вместо r

0 голосов
/ 21 ноября 2011

Вы открыли дескриптор файла в режиме только для чтения.

0 голосов
/ 21 ноября 2011
 fopen($filename, "r");

используется только для чтения ...

Использование

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