mirror of
https://github.com/php/doc-de.git
synced 2026-03-26 00:02:18 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/de/trunk@288874 c90b9560-bf6c-de11-be94-00142212c4b1
426 lines
14 KiB
XML
426 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: sammywg Status: ready -->
|
|
|
|
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sprintf">
|
|
<refnamediv>
|
|
<refname>sprintf</refname>
|
|
<refpurpose>Gibt einen formatierten String zurück</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<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>
|
|
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Gibt eine an Hand des Formatierungs-Strings <parameter>format</parameter>
|
|
gebildete Zeichenkette zurück.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>format</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Der Formatierungs-String wird aus null oder mehreren Anweisungen
|
|
gebildet: Gewöhnliche Zeichen (außer <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.
|
|
</para>
|
|
<para>
|
|
Jede der Formatierugs-Anweisungen besteht aus einem
|
|
Prozent-Zeichen (<literal>%</literal>), gefolgt von einem oder mehrereren
|
|
der folgenden Elemente:
|
|
<orderedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Eine optionale <emphasis>Vorzeichenangabe</emphasis>, die die
|
|
Verwendung eines Vorzeichens (- oder +) vor einer Zahl erzwingt.
|
|
Standardmäßig wird nur das - Zeichen vor negativen Zahlen verwendet.
|
|
Die Vorzeichenangabe erzwingt, dass positive Zahlen ein + Zeichen
|
|
vorangestellt bekommen, und wurde mit PHP 4.3.0 eingeführt.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Ein optionales <emphasis>Füllzeichen</emphasis>, das festlegt, mit
|
|
welchem Zeichen ein String bis zum Erreichen einer bestimmten Länge
|
|
aufgefüllt wird. 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>
|
|
Eine optionale Angabe der <emphasis>Ausrichtung</emphasis>, die
|
|
bestimmt, ob das Ergebnis rechts- oder linksbündig ausgerichtet werden
|
|
soll. Das Standardverhalten ist rechtsbündige Ausrichtung, ein
|
|
<literal>-</literal>-Zeichen an dieser Stelle lässt den Text
|
|
linksbündig erscheinen.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Eine optionale Zahl für die <emphasis>Längenangabe</emphasis>,
|
|
welche die mindestens zurückzugebende Anzahl Zeichen spezifiziert.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Eine optionale <emphasis>Genauigkeitsangabe</emphasis> in der Form
|
|
eines Punktes ('.') gefolgt von einem optionalen Dezimalstring. Dieser
|
|
drückt aus, wieviele Dezimalstellen für Fließkommazahlen ausgegeben
|
|
werden sollten. Wenn Sie diese Angabe auf einen String anwenden,
|
|
fungiert sie als Grenzpunkt, der die maximale Zeichenzahl der
|
|
ausgegebenen Zeichenkette bestimmt.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Eine <emphasis>Typangabe</emphasis>, welche den Typ enthält,
|
|
als der das jeweils übergebene Argument angesehen werden soll.
|
|
Mögliche Angaben sind:
|
|
<simplelist>
|
|
<member>
|
|
<literal>%</literal> - ein Prozentzeichen. 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 als vorzeichenbehafteter Dezimalwert
|
|
(signed integer) ausgegeben.
|
|
</member>
|
|
<member>
|
|
<literal>e</literal> - das Argument wird als wissenschaftliche
|
|
Notation betrachtet (z.B. 1.2e+2). Die Genauigkeitsangabe steht
|
|
seit PHP 5.2.1 für die Anzahl der Dezimalstellen. In früheren
|
|
PHP-Versionen wurde sie als signifikante Stelle betrachtet (eine
|
|
Stelle weniger).
|
|
</member>
|
|
<member>
|
|
<literal>u</literal> - das Argument wird als Integer
|
|
angesehen und ein positiver vorzeichenloser Dezimalwert (unsigned
|
|
integer) ausgegeben.
|
|
</member>
|
|
<member>
|
|
<literal>f</literal> - das Argument wird als float angesehen und
|
|
entsprechend der Einstellungen in den locales als Fließkommazahl
|
|
ausgegeben.
|
|
</member>
|
|
<member>
|
|
<literal>F</literal> - das Argument wird als float angesehen und
|
|
unabhängig von den Einstellungen in den locales als Fließkommazahl
|
|
ausgegeben.
|
|
Verfügbar ab PHP 4.3.10 und PHP 5.0.3.
|
|
</member>
|
|
<member>
|
|
<literal>o</literal> - das Argument wird als Integer
|
|
angesehen 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 Hexadezimalwert ausgegeben (mit
|
|
Kleinbuchstaben).
|
|
</member>
|
|
<member>
|
|
<literal>X</literal> - das Argument wird als Integer
|
|
angesehen und als Hexadezimalwert ausgegeben (mit
|
|
Großbuchstaben).
|
|
</member>
|
|
</simplelist>
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
<para>
|
|
Der Formatstring unterstützt nummerierte Argumente und kann daher auch
|
|
ihre Position bestimmen (argument numbering/swapping). Hier ein Beispiel:
|
|
<example>
|
|
<title>Argumente tauschen</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$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[
|
|
<?php
|
|
$format = 'The %s contains %d monkeys';
|
|
printf($format, $num, $location);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
Nun haben wir ein Problem. Die Reihenfolge der Platzhalter im
|
|
Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im
|
|
Code. Wir würden gern den Code belassen wie er ist und einfach im
|
|
Formatstring angeben, welche Argumenten welchen Platzhaltern entsprechen.
|
|
Wir würden dann den Formatstring wie folgt schreiben:
|
|
<example>
|
|
<title>Argumente tauschen</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$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[
|
|
<?php
|
|
$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>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>args</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>...</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Gibt eine an Hand des Formatierungs-Strings <parameter>format</parameter>
|
|
gebildete Zeichenkette zurück.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<para>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>4.0.6</entry>
|
|
<entry>
|
|
Unterstützung für Argument numbering/swapping hinzugefügt.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<example>
|
|
<title><function>printf</function>: Verschiedene Beispiele</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$n = 43951789;
|
|
$u = -43951789;
|
|
$c = 65; // ASCII 65 is 'A'
|
|
|
|
// Beachten Sie das doppelte %%, dies gibt ein '%'-Zeichen aus
|
|
printf("%%b = '%b'\n", $n); // Binärdarstellung
|
|
printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function
|
|
printf("%%d = '%d'\n", $n); // Standard-Integerdarstellung
|
|
printf("%%e = '%e'\n", $n); // Wissenschaftliche Notation
|
|
printf("%%u = '%u'\n", $n); // vorzeichenlose Integerdarstellung einer positiven Zahl
|
|
printf("%%u = '%u'\n", $u); // vorzeichenlose Integerdarstellung einer negativen Zahl
|
|
printf("%%f = '%f'\n", $n); // Fließkommazahldarstellung
|
|
printf("%%o = '%o'\n", $n); // Oktaldarstellung
|
|
printf("%%s = '%s'\n", $n); // Stringdarstellung
|
|
printf("%%x = '%x'\n", $n); // Hexadezimaldarstellung (Kleinbuchstaben)
|
|
printf("%%X = '%X'\n", $n); // Hexadezimaldarstellung (Großbuchstaben)
|
|
|
|
printf("%%+d = '%+d'\n", $n); // Vorzeichenangabe für positive Integerzahlen
|
|
printf("%%+d = '%+d'\n", $u); // Vorzeichenangabe für negative Integerzahlen
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<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'
|
|
%+d = '+43951789'
|
|
%+d = '-43951789'
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
<example>
|
|
<title><function>printf</function>: Stringformatierung</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$s = 'monkey';
|
|
$t = 'many monkeys';
|
|
|
|
printf("[%s]\n", $s); // normale rechtsbündige Ausgabe
|
|
printf("[%10s]\n", $s); // rechtsbündige Ausgabe, mit Leerzeichen aufgefüllt
|
|
printf("[%-10s]\n", $s); // linksbündige Ausgabe, mit Leerzeichen aufgefüllt
|
|
printf("[%010s]\n", $s); // auffüllen mit Nullen funktioniert auch bei Strings
|
|
printf("[%'#10s]\n", $s); // Verwendung des benutzerdefinierten Auffüllzeichens '#'
|
|
printf("[%10.10s]\n", $t); // linksbündige Ausgabe mit abschneiden überflüssiger
|
|
// Buchstaben nach der zehnten Stelle
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<screen>
|
|
<![CDATA[
|
|
[monkey]
|
|
[ monkey]
|
|
[monkey ]
|
|
[0000monkey]
|
|
[####monkey]
|
|
[many monke]
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: Mit Nullen aufgefüllte Integer</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: Währungsformatierung</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$money1 = 68.75;
|
|
$money2 = 54.35;
|
|
$money = $money1 + $money2;
|
|
// echo $money gibt "123.1" aus
|
|
$formatted = sprintf("%01.2f", $money);
|
|
// echo $formatted gibt "123.10" aus
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: Wissenschaftliche Notation</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$number = 362525200;
|
|
|
|
echo sprintf("%.3e", $number); // Ausgabe 3.625e+8
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>printf</function></member>
|
|
<member><function>sscanf</function></member>
|
|
<member><function>fscanf</function></member>
|
|
<member><function>vsprintf</function></member>
|
|
<member><function>number_format</function></member>
|
|
</simplelist>
|
|
</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:"~/.phpdoc/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
|
|
-->
|