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=10989&edit=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]