ID: 32889 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Closed Bug Type: Documentation problem PHP Version: Irrelevant New Comment:
This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. "The file pointer is changed only in append mode. In write mode, additional fseek() call is needed." Previous Comments: ------------------------------------------------------------------------ [2005-04-29 13:04:11] [EMAIL PROTECTED] Something like "Warning: Truncate doesn't change position of the file pointer. Adjust the pointer with fseek to write to the end of the file after truncate operation in modes other than "a" and "a+"." ? Examples: <?php $fh = fopen("file.txt","w+"); fwrite($fh, "newfile"); // file contains string 'newfile' ftruncate($fh, 3); fseek($fh, 0, SEEK_END); fwrite($fh, "contents"); // file contains 'newcontents' fclose($fh); ?> <?php $fh = fopen("file.txt","w+"); fwrite($fh, "newfile"); // file contains string 'newfile' ftruncate($fh, 3); fwrite($fh, "contents"); // file contains 'new contents' fclose($fh); ?> ------------------------------------------------------------------------ [2005-04-29 12:22:17] [EMAIL PROTECTED] "The file pointer is not changed." (c) man ftruncate ------------------------------------------------------------------------ [2005-04-29 12:12:57] [EMAIL PROTECTED] On the second thought it doesn't seem like a feature. ------------------------------------------------------------------------ [2005-04-29 11:36:13] [EMAIL PROTECTED] Description: ------------ Note or warning here? http://www.php.net/manual/en/function.ftruncate.php Reproduce code: --------------- <?php // truncate doesn't move the file pointer to the end of the file $flog = fopen("text.txt", "w+"); fwrite($flog, "veeery veeery long string"); fseek($flog, -2, SEEK_END); ftruncate($flog, 6); fwrite($flog, "shortstr"); fclose($flog); ?> Expected result: ---------------- 0000000000: 76 65 65 65 72 79 20 73 │ 68 6F 72 74 73 74 72 veeery shortstr Actual result: -------------- 0000000000: 76 65 65 65 72 79 20 00 │ 00 00 00 00 00 00 00 00 veeery 0000000010: 00 00 00 00 00 00 00 73 │ 68 6F 72 74 73 74 72 shortstr ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32889&edit=1