#41609 [Bgs]: file_put_contents() injects \r

From: Date: Mon, 11 Jun 2007 11:30:26 +0000
Subject: #41609 [Bgs]: file_put_contents() injects \r
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-113633@lists.php.net to get a copy of this message
ID: 41609 User updated by: zoe at uk dot ibm dot com Reported By: zoe at uk dot ibm dot com Status: Bogus Bug Type: Filesystem function related Operating System: Windows XP PHP Version: 6CVS-2007-06-06 (snap) New Comment: Fair enough - I was wondering if it should also be either RTFM or WTFM? Just had a quick look at what I hope are the PHP6 docs and I can't see the new put_file_contents() flags documented yet. *IF* there is some work needed on the docs is the right process to open another defect? Previous Comments: ------------------------------------------------------------------------ [2007-06-11 10:58:07] pajoye@php.net Not a bug > bogus (I don't like this word but well :) ------------------------------------------------------------------------ [2007-06-11 09:56:24] zoe at uk dot ibm dot com Yes - you are right. The FILE_BINARY flag does fix the problem. I'm closing this. ------------------------------------------------------------------------ [2007-06-09 21:17:40] pajoye@php.net "when files are not opened with the binary flag, windows automatically converts \n to \r\n. I don't have time until mid-July to investigate this problem though." As far as I remember, it is the documented behavior (windows file functions). It is especially important to take care of text contents in the unicode mode, it is not a good idea to blindly save everything as binary. That's why php6 has two new flags which can be used in file_put_contents: - FILE_TEXT, opens with "wt" (or "at" if FILE_APPEND is used) - FILE_BINARY, opens with "wb" (or "ab" the default mode is "w", which is a text mode on windows. I do not have a windows at hand to test but I'm pretty sure that FILE_BINARY solves your issue. It may use it automatically when a binary string is given, but I would find that trickier (magic++). ------------------------------------------------------------------------ [2007-06-09 21:03:19] nlopess@php.net when files are not opened with the binary flag, windows automatically converts \n to \r\n. I don't have time until mid-July to investigate this problem though. ------------------------------------------------------------------------ [2007-06-06 10:48:09] zoe at uk dot ibm dot com Hi Johannes No, it doesn't: E:\zoe\TESTS\slashr>e:\zoe\buildsystem\php6exe\php.exe -d unicode.semantics=0 johannes.php string(7) "foo bar" E:\zoe\TESTS\slashr>e:\zoe\buildsystem\php6exe\php.exe -d unicode.semantics=1 johannes.php string(7) "foo bar" ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41609 -- Edit this bug report at http://bugs.php.net/?id=41609&edit=1

« previous php.bugs (#113633) next »