[PHP-DEV] Bug #10989 Updated: Wrong file writing
ID: 10989 User Update by: [EMAIL PROTECTED] Old-Status: Open Status: Closed Bug Type: Filesystem function related Operating system: Win2K-Win98-UNIX PHP Version: 4.0 Latest CVS (2001-05-21) Description: Wrong file writing Ok, I've found the solution: simply call clearstatcache() before filesize(). Previous Comments: --- [2001-05-21 10:57:52] [EMAIL PROTECTED] ?php //At the end of the script test.txt should //contains ADD1ADD2, but, as you can see, //it will contains just ADD2. //Is there a work around for this problem ? function read_file ($file_name) { $file = fopen($file_name, r); flock($file, 1); $content = trim(fread($file, filesize($file_name))); flock($file, 3); fclose ($file); return ($content); } function write_file ($content, $file_name) { $file = fopen($file_name, w); flock($file, 2); fwrite($file, $content); flock($file, 3); fclose ($file); } $filename=test.txt; write_file(, $filename); $content = read_file($filename); $content .= ADD1; write_file($content, $filename); $content = read_file($filename); $content .= ADD2; write_file($content, $filename); ? --- Full Bug description available at: http://bugs.php.net/?id=10989 -- PHP Development Mailing List http://www.php.net/ To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-DEV] Bug #10989 Updated: Wrong file writing
ID: 10989 Updated by: derick Reported By: [EMAIL PROTECTED] Old-Status: Closed Status: Analyzed Bug Type: Filesystem function related Operating system: PHP Version: 4.0 Latest CVS (2001-05-21) Assigned To: Comments: This should not be closed yet, as I think it's a valid bug. Derick Previous Comments: --- [2001-05-21 11:52:14] [EMAIL PROTECTED] Ok, I've found the solution: simply call clearstatcache() before filesize(). --- [2001-05-21 10:57:52] [EMAIL PROTECTED] ?php //At the end of the script test.txt should //contains ADD1ADD2, but, as you can see, //it will contains just ADD2. //Is there a work around for this problem ? function read_file ($file_name) { $file = fopen($file_name, r); flock($file, 1); $content = trim(fread($file, filesize($file_name))); flock($file, 3); fclose ($file); return ($content); } function write_file ($content, $file_name) { $file = fopen($file_name, w); flock($file, 2); fwrite($file, $content); flock($file, 3); fclose ($file); } $filename=test.txt; write_file(, $filename); $content = read_file($filename); $content .= ADD1; write_file($content, $filename); $content = read_file($filename); $content .= ADD2; write_file($content, $filename); ? --- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=10989edit=2 -- PHP Development Mailing List http://www.php.net/ To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-DEV] Bug #10989 Updated: Wrong file writing
ID: 10989 Updated by: cynic Reported By: [EMAIL PROTECTED] Old-Status: Analyzed Status: Bogus Bug Type: Filesystem function related Operating system: PHP Version: 4.0 Latest CVS (2001-05-21) Assigned To: Comments: It's not. The clearstatcache() is really needed (per manual). The result of filesize() is cached (and it's 0), so on all the calls to read_file() 0 bytes is read, hence $filename=test.txt; write_file(, $filename); # filesize() returns 0, and the result is cached $content = read_file($filename); # read filesize(), i. e. the cached 0 bytes. ok this time $content .= ADD1; write_file($content, $filename); $content = read_file($filename); # read filesize(), i. e. the cached 0 bytes. this time it's not ok # == $content $content .= ADD2; write_file($content, $filename); BTW I think it should be bogusified (user error). Previous Comments: --- [2001-05-21 11:55:50] [EMAIL PROTECTED] This should not be closed yet, as I think it's a valid bug. Derick --- [2001-05-21 11:52:14] [EMAIL PROTECTED] Ok, I've found the solution: simply call clearstatcache() before filesize(). --- [2001-05-21 10:57:52] [EMAIL PROTECTED] ?php //At the end of the script test.txt should //contains ADD1ADD2, but, as you can see, //it will contains just ADD2. //Is there a work around for this problem ? function read_file ($file_name) { $file = fopen($file_name, r); flock($file, 1); $content = trim(fread($file, filesize($file_name))); flock($file, 3); fclose ($file); return ($content); } function write_file ($content, $file_name) { $file = fopen($file_name, w); flock($file, 2); fwrite($file, $content); flock($file, 3); fclose ($file); } $filename=test.txt; write_file(, $filename); $content = read_file($filename); $content .= ADD1; write_file($content, $filename); $content = read_file($filename); $content .= ADD2; write_file($content, $filename); ? --- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=10989edit=2 -- PHP Development Mailing List http://www.php.net/ To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]