dave            Fri Jul 30 01:04:21 2004 EDT

  Modified files:              
    /phpdoc/en/reference/strings/functions      fprintf.xml sprintf.xml 
  Log:
  - Remove the format documentation from fprintf and link to the
    documentation in sprintf. Keeping it in one place is better and the
    fprintf version was outdated anyway.
  
  - The precision specifier works on strings too. Document this and add
    examples.
  
  - Add some basic examples of each type specifier.
  
  
http://cvs.php.net/diff.php/phpdoc/en/reference/strings/functions/fprintf.xml?r1=1.3&r2=1.4&ty=u
Index: phpdoc/en/reference/strings/functions/fprintf.xml
diff -u phpdoc/en/reference/strings/functions/fprintf.xml:1.3 
phpdoc/en/reference/strings/functions/fprintf.xml:1.4
--- phpdoc/en/reference/strings/functions/fprintf.xml:1.3       Fri Jul 30 00:20:42 
2004
+++ phpdoc/en/reference/strings/functions/fprintf.xml   Fri Jul 30 01:04:21 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.3 $ -->
+<!-- $Revision: 1.4 $ -->
   <refentry id="function.fprintf">
    <refnamediv>
     <refname>fprintf</refname>
@@ -14,112 +14,12 @@
       <methodparam 
choice="opt"><type>mixed</type><parameter>args</parameter></methodparam>
      </methodsynopsis>
     <simpara>
-     Write a string produced according to the formatting string
-     <parameter>format</parameter> to the stream resource specified
-     by <parameter>handle</parameter>..
+     Write a string produced according to <parameter>format</parameter>
+     to the stream resource specified by <parameter>handle</parameter>.
+     <parameter>format</parameter> is described in the documentation for
+     <function>sprintf</function>.
     </simpara>
     <simpara>
-     The format string is composed of zero or more directives:
-     ordinary characters (excluding <literal>%</literal>) that are
-     copied directly to the result, and <emphasis>conversion
-     specifications</emphasis>, each of which results in fetching its
-     own parameter.  This applies to <function>fprintf</function>,
-     <function>sprintf</function>, and <function>printf</function>.
-    </simpara>
-    <para>
-     Each conversion specification consists of a percent sign
-     (<literal>%</literal>), followed by one or more of these
-     elements, in order:
-     <orderedlist>
-      <listitem>
-       <simpara>
-        An optional <emphasis>padding specifier</emphasis> that says
-        what character will be used for padding the results to the
-        right string size.  This may be a space character or a
-        <literal>0</literal> (zero character).  The default is to pad
-        with spaces.  An alternate padding character can be specified
-        by prefixing it with a single quote (<literal>'</literal>).
-        See the examples below.
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        An optional <emphasis>alignment specifier</emphasis> that says
-        if the result should be left-justified or right-justified.
-        The default is right-justified; a <literal>-</literal>
-        character here will make it left-justified.
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        An optional number, a <emphasis>width specifier</emphasis>
-        that says how many characters (minimum) this conversion should
-        result in.
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        An optional <emphasis>precision specifier</emphasis> that says
-        how many decimal digits should be displayed for floating-point
-        numbers.  This option has no effect for other types than
-        <type>float</type>. (Another function useful for formatting numbers is
-        <function>number_format</function>.)
-       </simpara>
-      </listitem>
-      <listitem>
-       <para>
-        A <emphasis>type specifier</emphasis> that says what type the
-        argument data should be treated as.  Possible types:
-        <simplelist>
-         <member>
-          <literal>%</literal> - a literal percent character. No
-          argument is required.
-         </member>
-         <member>
-          <literal>b</literal> - the argument is treated as an
-          integer, and presented as a binary number.
-         </member>
-         <member>
-          <literal>c</literal> - the argument is treated as an
-          integer, and presented as the character with that ASCII
-          value.
-         </member>
-         <member>
-          <literal>d</literal> - the argument is treated as an
-          integer, and presented as a (signed) decimal number.
-         </member>
-         <member>
-          <literal>u</literal> - the argument is treated as an
-          integer, and presented as an unsigned decimal number.
-         </member>
-         <member>
-          <literal>f</literal> - the argument is treated as a
-          <type>float</type>, and presented as a floating-point number.
-         </member>
-         <member>
-          <literal>o</literal> - the argument is treated as an
-          integer, and presented as an octal number.
-         </member>
-         <member>
-          <literal>s</literal> - the argument is treated as and
-          presented as a string.
-         </member>
-         <member>
-          <literal>x</literal> - the argument is treated as an integer
-          and presented as a hexadecimal number (with lowercase
-          letters).
-         </member>
-         <member>
-          <literal>X</literal> - the argument is treated as an integer
-          and presented as a hexadecimal number (with uppercase
-          letters).
-         </member>
-        </simplelist>
-       </para>
-      </listitem>
-     </orderedlist>
-    </para>
-    <simpara>
      Returns the length of the outputted string.
     </simpara>
     <simpara>
@@ -134,26 +34,36 @@
     <title>Examples</title>
     <para>
      <example>
-      <title><function>sprintf</function>: zero-padded integers</title>
+      <title><function>fprintf</function>: zero-padded integers</title>
       <programlisting role="php">
 <![CDATA[
 <?php
-$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
+if (!($fp = fopen('date.txt', 'w')))
+    return;
+
+fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
+// will write the formatted ISO date to date.txt
 ?>
 ]]>
       </programlisting>
      </example>
      <example>
-      <title><function>sprintf</function>: formatting currency</title>
+      <title><function>fprintf</function>: formatting currency</title>
       <programlisting role="php">
 <![CDATA[
 <?php
+if (!($fp = fopen('currency.txt', 'w')))
+    return;
+
 $money1 = 68.75;
 $money2 = 54.35;
 $money = $money1 + $money2;
 // echo $money will output "123.1";
-$formatted = sprintf("%01.2f", $money);
-// echo $formatted will output "123.10"
+$len = fprintf($fp, '%01.2f', $money);
+// will write "123.10" to currency.txt
+
+echo "wrote $len bytes to currency.txt";
+// use the return value of fprintf to determine how many bytes we wrote
 ?>
 ]]>
       </programlisting>
http://cvs.php.net/diff.php/phpdoc/en/reference/strings/functions/sprintf.xml?r1=1.9&r2=1.10&ty=u
Index: phpdoc/en/reference/strings/functions/sprintf.xml
diff -u phpdoc/en/reference/strings/functions/sprintf.xml:1.9 
phpdoc/en/reference/strings/functions/sprintf.xml:1.10
--- phpdoc/en/reference/strings/functions/sprintf.xml:1.9       Fri May 28 17:45:59 
2004
+++ phpdoc/en/reference/strings/functions/sprintf.xml   Fri Jul 30 01:04:21 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.9 $ -->
+<!-- $Revision: 1.10 $ -->
 <!-- splitted from ./en/functions/strings.xml, last change in rev 1.2 -->
   <refentry id="function.sprintf">
    <refnamediv>
@@ -60,9 +60,8 @@
        <simpara>
         An optional <emphasis>precision specifier</emphasis> that says
         how many decimal digits should be displayed for floating-point
-        numbers.  This option has no effect for other types than
-        <type>float</type>. (Another function useful for formatting numbers is
-        <function>number_format</function>.)
+        numbers. When using this specifier on a string, it acts as a
+        cutoff point, setting a maximum character limit to the string.
        </simpara>
       </listitem>
       <listitem>
@@ -191,20 +190,91 @@
    </refsect1>
    <refsect1>
     <title>Examples</title>
-    <para>
-     <example>
-      <title><function>sprintf</function>: zero-padded integers</title>
-      <programlisting role="php">
+    <example>
+     <title><function>printf</function>: various examples</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+$n =  43951789;
+$u = -43951789;
+$c = 65; // ASCII 65 is 'A'
+
+// notice the double %%, this prints a literal '%' character
+printf("%%b = '%b'\n", $n); // binary representation
+printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function
+printf("%%d = '%d'\n", $n); // standard integer representation
+printf("%%e = '%e'\n", $n); // scientific notation
+printf("%%u = '%u'\n", $n); // unsigned integer representation of a positive integer
+printf("%%u = '%u'\n", $u); // unsigned integer representation of a negative integer
+printf("%%f = '%f'\n", $n); // floating point representation
+printf("%%o = '%o'\n", $n); // octal representation
+printf("%%s = '%s'\n", $n); // string representation
+printf("%%x = '%x'\n", $n); // hexadecimal representation (lower-case)
+printf("%%X = '%X'\n", $n); // hexadecimal representation (upper-case)
+?>
+]]>
+     </programlisting>
+     <para>
+      The printout of this program would be:
+     </para>
+     <screen>
+<![CDATA[
+%b = '10100111101010011010101101'
+%c = 'A'
+%d = '43951789'
+%e = '4.39518e+7'
+%u = '43951789'
+%u = '4251015507'
+%f = '43951789.000000'
+%o = '247523255'
+%s = '43951789'
+%x = '29ea6ad'
+%X = '29EA6AD'
+]]>
+     </screen>
+    </example>
+    <example>
+     <title><function>printf</function>: string specifiers</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+$s = 'monkey';
+$t = 'many monkeys';
+
+printf("[%s]\n",      $s); // standard string output
+printf("[%10s]\n",    $s); // right-justification with spaces
+printf("[%-10s]\n",   $s); // left-justification with spaces
+printf("[%010s]\n",   $s); // zero-padding works on strings too
+printf("[%10.10s]\n", $t); // left-justification but with a cutoff of 10 characters
+?>
+]]>
+     </programlisting>
+     <para>
+      The printout of this program would be:
+     </para>
+     <screen>
+<![CDATA[
+[monkey]
+[    monkey]
+[monkey    ]
+[0000monkey]
+[many monke]
+]]>
+     </screen>
+    </example>
+    <example>
+     <title><function>sprintf</function>: zero-padded integers</title>
+     <programlisting role="php">
 <![CDATA[
 <?php
 $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
 ?>
 ]]>
-      </programlisting>
-     </example>
-     <example>
-      <title><function>sprintf</function>: formatting currency</title>
-      <programlisting role="php">
+     </programlisting>
+    </example>
+    <example>
+     <title><function>sprintf</function>: formatting currency</title>
+     <programlisting role="php">
 <![CDATA[
 <?php
 $money1 = 68.75;
@@ -215,11 +285,11 @@
 // echo $formatted will output "123.10"
 ?>
 ]]>
-      </programlisting>
-     </example>
-     <example>
-      <title><function>sprintf</function>: scientific notation</title>
-      <programlisting role="php">
+     </programlisting>
+    </example>
+    <example>
+     <title><function>sprintf</function>: scientific notation</title>
+     <programlisting role="php">
 <![CDATA[
 <?php
 $number = 362525200;
@@ -227,9 +297,8 @@
 echo sprintf("%.3e", $number); // outputs 3.63e+8
 ?>
 ]]>
-      </programlisting>
-     </example>
-    </para>
+     </programlisting>
+    </example>
    </refsect1>
   </refentry>
 

Reply via email to