Edit report at http://bugs.php.net/bug.php?id=51640&edit=1
ID: 51640 User updated by: spiderboy1989 at gmail dot com Reported by: spiderboy1989 at gmail dot com Summary: Fwrite writes twice a text Status: Bogus Type: Bug Package: Filesystem function related Operating System: Windows XP PHP Version: 5.3.2 New Comment: No way... i tested again, the same code, the same code that was giving me troubles... I tested the g_i_ivanov's code, and both are working! This must be a joke... I didn't change php version, I didn't change the code... This can't be true :/... I'm sorry for wasting your time. If I see any weird behavior, I will let you know it. Previous Comments: ------------------------------------------------------------------------ [2010-06-08 14:09:43] tony2...@php.net Not reproducible. Try providing a working example script, the one in the report doesn't work. ------------------------------------------------------------------------ [2010-06-01 10:19:44] g_i_ivanov at mail dot bg I have the same problem: Windows XP Professional SP3, Apache/2.2.14, PHP 5.2.13 (cli) code: ------------------------------------------ $fp = fopen("d:/Projects/test/logs/testfile.txt", "a"); fwrite($fp, date('c') . " - Sample text" . PHP_EOL); fclose($fp); result: ------------------------------------------ 2010-05-31T10:36:37+03:00 - Sample text 2010-05-31T10:36:37+03:00 - Sample text ------------------------------------------------------------------------ [2010-04-23 01:57:42] spiderboy1989 at gmail dot com Description: ------------ I'm having troubles with fwrite() function. It is writing twice a text I just need to write once. I searched in google for the same problem, and I found the same bug reported here : http://bugs.php.net/bug.php?id=21916, and here : http://bugs.php.net/bug.php?id=16225, but neither of both was solved. This is how it writes into the file : "First Second Hello world! Hello world! Third" As you can see, the string "hello world!" is writed twice, and that should not happen. Also, and this is weird, the line fwrite($op, $lastLine); prints the text correctly, just once... Test script: --------------- $file = "test.txt"; $string = "Hello world!\r\n"; $op = fopen($file,"r+"); $exp = explode("\n", fread($op, filesize($file))); $lastLine = end($exp); fseek($op, -strlen($lastLine), SEEK_END); fwrite($op, $string); fwrite($op, $lastLine); fclose($op); Expected result: ---------------- The text should be writed just once. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51640&edit=1