1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-29 10:42:12 +02:00
Files
archived-doc-de/reference/strings/functions/sprintf.xml
Thomas Schoefbeck de7f0a31ee sync to en
git-svn-id: https://svn.php.net/repository/phpdoc/de/trunk@113063 c90b9560-bf6c-de11-be94-00142212c4b1
2003-01-22 22:02:13 +00:00

229 lines
7.9 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- EN-Revision: 1.5 Maintainer: tom Status: ready -->
<!-- CREDITS: tschuer -->
<refentry id="function.sprintf">
<refnamediv>
<refname>sprintf</refname>
<refpurpose>Gibt einen formatierten String zurück</refpurpose>
</refnamediv>
<refsect1>
<title>Beschreibung:</title>
<methodsynopsis>
<type>string</type><methodname>sprintf</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>args</parameter></methodparam>
</methodsynopsis>
<simpara>
Gibt einen an Hand des Formatierungs-Strings
<parameter>format</parameter> gebildeten String zurück.
</simpara>
<simpara>
Der Formatierungs-String wird aus keiner oder mehreren Anweisungen
gebildet: Gewöhnliche Zeichen (ausser <literal>%</literal>), die
direkt in das Ergebnis übertragen werden und
<emphasis>Umsetzungs-Anweisungen</emphasis>. Jede dieser
Anweisungen holt sich als Resultat ihre eigenen Parameter. Diese
Anweisungen gelten sowohl für die <function>sprintf</function>-
als auch für die <function>printf</function>-Funktion.
</simpara>
<para>
Jede der Formatierugs-Anweisungen besteht aus einem
Prozent-Zeichen (<literal>%</literal>), gefolgt von einem oder mehrereren
der folgenden Elemente:
<orderedlist>
<listitem>
<simpara>
Einem optionalen <emphasis>Füll-Zeichen</emphasis>, das den
String bis rechts auffüllt. Dies kann ein Leerzeichen oder eine
<literal>0</literal> (das Null-Zeichen) sein. Standardmäßig wird
mit dem Leerzeichen gefüllt. Andere Füllzeichen können durch
Voranstellen eines einfachen Anführungszeichens (<literal>'</literal>)
definiert werden. Beachten Sie die nachstehenden Beispiele.
</simpara>
</listitem>
<listitem>
<simpara>
Einer optionalen Angabe der <emphasis>Ausrichtung</emphasis>,
ob die Ausgabe nach links oder nach rechts (default) ausgerichtet
werden soll. Standardmäßig ist die Ausrichtung rechtsbündig.
Um den Text linksbündig auszurichten müssen Sie das Zeichen
<literal>-</literal> angeben.
</simpara>
</listitem>
<listitem>
<simpara>
Einer optionalen Zahl für die <emphasis>Längen-Angabe</emphasis>,
welche die mindestens zurückzugebende Anzahl Zeichen spezifiziert.
</simpara>
</listitem>
<listitem>
<simpara>
Einem optionalen Wert für die Anzahl der auszugebenden
<emphasis>Dezimalstellen</emphasis> für Fließkommazahlen. Dieser
Wert hat nur Einfluss auf Werte vom Typ <type>float</type> (eine
weitere hilfreiche Funktion zur Formatierung von Zahlen ist
<function>number_format</function>).
</simpara>
</listitem>
<listitem>
<para>
Einer <emphasis>Typ-Angabe</emphasis> welche den Typ enthält,
als der das Argument angesehen werden soll. Mögliche Angaben
sind:
<simplelist>
<member>
<literal>%</literal> - ein Prozent-Zeichen ("%"). Es ist kein
Argument erforderlich.
</member>
<member>
<literal>b</literal> - das Argument wird als Integer
angesehen und als Binär-Wert ausgegeben.
</member>
<member>
<literal>c</literal> - das Argument wird als Integer
angesehen und das entsprechende ASCII-Zeichen wird
ausgegeben.
</member>
<member>
<literal>d</literal> - das Argument wird als Integer
angesehen und ein Dezimalwert (signed) ausgegeben.
</member>
<member>
<literal>u</literal> - das Argument wird als Integer
angesehen und ein Dezimalwert (unsigned) ausgegeben.
</member>
<member>
<literal>f</literal> - das Argument wird als <type>float</type>
angesehen und eine Fließkomma-Zahl ausgegeben.
</member>
<member>
<literal>o</literal> - das Argument wird als Integer
angesehen und und als Oktalzahl ausgegeben.
</member>
<member>
<literal>s</literal> - das Argument wird als String angesehen
und auch als solcher ausgegeben.
</member>
<member>
<literal>x</literal> - das Argument wird als Integer
angesehen und als Hexadezimal-Wert ausgegeben (mit
Kleinbuchstaben).
</member>
<member>
<literal>X</literal> - das Argument wird als Integer
angesehen und als Hexadezimal-Wert ausgegeben (mit
Großbuchstaben).
</member>
</simplelist>
</para>
</listitem>
</orderedlist>
</para>
<para>
Seit PHP 4.0.6 unterstützt der Formatstring auch Argumente zu
numerieren/tauschen. Hier ein Beispiel:
<example>
<title>Argumente tauschen</title>
<programlisting role="php">
<![CDATA[
$format = "There are %d monkeys in the %s";
printf($format,$num,$location);
]]>
</programlisting>
</example>
Dies könnte "There are 5 monkeys in the tree" ausgeben. Aber nehmen
wir einmal an, dass wir den Formatstring in einer separaten Datei
erstellen, da wir ihn internationalisieren wollen, und deshalb wie
folgt umschreiben:
<example>
<title>Argumente tauschen</title>
<programlisting role="php">
<![CDATA[
$format = "The %s contains %d monkeys";
printf($format,$num,$location);
]]>
</programlisting>
</example>
Nun haben wir ein Problem. Die Reihenfolge der Platzhalter des
Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im
Code. Wir würden gerne den Code belassen wie er ist, und einfach im
Formatstring angeben, welchen Argumenten die Platzhalter entsprechen.
Wir würden dann den Formatstring wie folt schreiben:
<example>
<title>Argumente tauschen</title>
<programlisting role="php">
<![CDATA[
$format = "The %2\$s contains %1\$d monkeys";
printf($format,$num,$location);
]]>
</programlisting>
</example>
Ein weiterer Vorteil ist, dass wir nun die Platzhalter wiederholen
können, ohne mehr Argumente im Code hinzufügen zu müssen. Zum Beispiel:
<example>
<title>Argumente tauschen</title>
<programlisting role="php">
<![CDATA[
$format = "The %2\$s contains %1\$d monkeys.
That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);
]]>
</programlisting>
</example>
</para>
<simpara>
Siehe auch: <function>printf</function>,
<function>sscanf</function>, <function>fscanf</function> und
<function>number_format</function>.
</simpara>
</refsect1>
<refsect1>
<title>Beispiele:</title>
<para>
<example>
<title><function>sprintf</function>: Null-gefüllte Integer-Werte</title>
<programlisting role="php">
<![CDATA[
$isodatum = sprintf ("%04d-%02d-%02d", $jahr, $monat, $tag);
]]>
</programlisting>
</example>
<example>
<title><function>sprintf</function>: Währung formatieren</title>
<programlisting role="php">
<![CDATA[
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money wird ausgeben "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted wird ausgeben "123.10"
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->