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

Reply via email to