wez Sat Jun 7 10:12:51 2003 EDT
Modified files:
/phpdoc/en/reference/filesystem/functions fopen.xml
Log:
Explain a bit more about the nightmare that is the text-mode-translation, the
spawn of satan.
Index: phpdoc/en/reference/filesystem/functions/fopen.xml
diff -u phpdoc/en/reference/filesystem/functions/fopen.xml:1.14
phpdoc/en/reference/filesystem/functions/fopen.xml:1.15
--- phpdoc/en/reference/filesystem/functions/fopen.xml:1.14 Thu May 29 16:10:20
2003
+++ phpdoc/en/reference/filesystem/functions/fopen.xml Sat Jun 7 10:12:51 2003
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.14 $ -->
+<!-- $Revision: 1.15 $ -->
<!-- splitted from ./en/functions/filesystem.xml, last change in rev 1.2 -->
<refentry id="function.fopen">
<refnamediv>
@@ -122,25 +122,61 @@
</para>
<note>
<para>
- On systems that differentiate between binary ('b') and text ('t') mode
- translation (such as Windows), the <parameter>mode</parameter> may contain
- either the letter 'b' or the letter 't' as the last character to force
- the translation mode to be either binary or text mode respectively.
+ Different operating system families have different line-ending
+ conventions. When you write a text file and want to insert a line
+ break, you need to use the correct line-ending character(s) for your
+ operating system. Unix based systems use <literal>\n</literal> as the
+ line ending character, Windows based systems use <literal>\r\n</literal>
+ as the line ending characters and Macintosh based systems use
+ <literal>\r</literal> as the the line ending character.
</para>
<para>
- The default translation mode depends on the SAPI that you are using, so
- you are encouraged to always specify the appropriate flag; you will
- usually always want to specify 'b' if you intend for your script to be
- portable between different platforms.
+ If you use the wrong line ending characters when writing your files, you
+ might find that other applications that open those files will "look
+ funny".
+ </para>
+ <para>
+ Windows offers a text-mode translation flag (<literal>'t'</literal>)
+ which will transparently translate <literal>\n</literal> to
+ <literal>\r\n</literal> when working with the file. In contrast, you
+ can also use <literal>'b'</literal> to force binary mode, which will not
+ translate your data. To use these flags, specify either
+ <literal>'b'</literal> or <literal>'t'</literal> as the last character
+ of the <parameter>mode</parameter> parameter.
+ </para>
+ <para>
+ The default translation mode depends on the SAPI and version of PHP that
+ you are using, so you are encouraged to always specify the appropriate
+ flag for portability reasons. You should use the <literal>'t'</literal>
+ mode if you are working with plain-text files and you use
+ <literal>\n</literal> to delimit your line endings in your script, but
+ expect your files to be readable with applications such as notepad. You
+ should use the <literal>'b'</literal> in all other cases.
</para>
<para>
If you do not specify the 'b' flag when working with binary files, you
- will experience strange problems with your data, including broken image
+ may experience strange problems with your data, including broken image
files and strange problems with <literal>\r\n</literal> characters.
</para>
<para>
- <emphasis>It is strongly recommended that you always use the 'b' flag
- when opening files with <function>fopen</function></emphasis>.
+ <emphasis>For portability, it is strongly recommended that you always
+ use the 'b' flag when opening files with <function>fopen</function>.
+ </emphasis>
+ </para>
+ <para>
+ <emphasis>Again, for portability, it is also strongly recommended that
+ you re-write code that uses or relies upon the <literal>'t'</literal>
+ mode so that it uses the correct line endings and
+ <literal>'b'</literal> mode instead.
+ </emphasis>
+ </para>
+ <para>
+ <emphasis>As of PHP 4.3.2, the default mode is set to binary for all
+ platforms that distinguish between binary and text mode. If you are
+ having problems with your scripts after upgrading, try using the
+ <literal>'t'</literal> flag as a workaround until you have made your
+ script more portable as mentioned above.
+ </emphasis>
</para>
</note>
<para>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php