fwrite不会覆盖我的.txt

时间:2015-03-01 13:50:27

标签: php fopen fwrite

我有一个按钮,我希望当我按下它时,它会在文本文件中写入其状态,按钮会改变其值,就像切换开关一样。

<button type="button"><?php echo $button ?></button>

我的问题是,一旦我按下它,文本文件中的第一个值就不会被下一个值覆盖。他们都是写的。

我应该在文本文件中添加此内容:ONOFF但我得到ONOFFOFFON

<?php
$file = fopen('state.txt', 'r+');
$state = fread($file, '3');

if ($state == 'ON') {
    $button = 'OFF';
    fwrite($file, 'OFF');
} elseif ($state == 'OFF') {
    $button = 'ON';
    fwrite($file, 'ON');
} else {
    $button = 'error';
}

fclose($file);
?>

此外,我希望我的php和我的HTML代码在同一页面上。

谢谢。

1 个答案:

答案 0 :(得分:2)

您已打开r / w文件,然后从中读取。

&#34;指针&#34;是最后一个字符;下一次写操作发生在指针所在的地方,你会得到附加的数据。

2个选项: 阅读后关闭文件并重新打开以写入

或使用fseek($file,0)将指针移回开头。