我在Windows 7 Ultimate 32bit(禁用IIS)上使用Apache / 2.2.17运行PHP版本5.3.4。 我一直在关注fopen模式并且很清楚什么模式可以做什么,但是我无法用手指围绕为什么用单个fwrite双重发布到txt文件。 我甚至尝试过模式:w和c。
现在我不关心进入的新数据是前置还是附加,只要它在文件中没有截断现有数据就可以了。
真正的问题是,为什么“a”模式而不仅仅是附加新数据,它会在关闭之前将新数据写入(复制)两次。
在php代码中:
$fh = "";
if(!($fh = fopen("list.txt","x")) // if file exists, just open for writing (prepend)
$fh = fopen("list.txt","a"); // if not exist, open just for writing (append)
fwrite($fh,"Somthing\r\n"); // write to file (filehandle, "data")
fclose($fh); // close the file
结果:
财产以后
财产以后
解决: 找到了罪魁祸首:我的编码没有错。这是我在Ubuntu 10.04下用于Chromium的html validator扩展。这个扩展显然导致类似于即时页面重新加载的内容。
答案 0 :(得分:1)
$fh = fopen("list.txt","a");
fwrite($fh,"Somthing\n"); // write to file (filehandle, "data")
fclose($fh); // close the file
你的逻辑不正确。
它是如何完成的,我希望它适合你
答案 1 :(得分:0)
我很高兴知道这已经有多年历史了,但是仍然已知会出现此问题,还有另一个原因也可能导致它。我没有@robx使用的扩展名,禁用了所有扩展名,也没有更改-仍然是重复输入。但是,在阅读了有关该线程是Chrome浏览器错误(https://bugs.chromium.org/p/chromium/issues/detail?id=64810)的注释后,注释16表明该问题是网站图标已预取。不理想,但是删除文档开头的favion图标链接标记,它将停止重复输入。