1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 07:12:15 +01:00
Files
archived-doc-de/reference/strings/functions/sprintf.xml
Martin Samesch 9b0f8a1681 Sync with EN
2023-05-09 22:34:52 +02:00

257 lines
6.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f134250210702ab6280ab303b846679177d39f14 Maintainer: sammywg Status: ready -->
<refentry xml:id="function.sprintf" xmlns="http://docbook.org/ns/docbook">
<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 rep="repeat"><type>mixed</type><parameter>values</parameter></methodparam>
</methodsynopsis>
<para>
Gibt eine anhand des Formatierungs-Strings <parameter>format</parameter>
gebildete Zeichenkette zurück.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&strings.parameter.format;
<varlistentry>
<term><parameter>values</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt eine anhand des Formatierungs-Strings <parameter>format</parameter>
gebildete Zeichenkette zurück.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&strings.errors.sprintf;
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
&strings.changelog.sprintf;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Argumente tauschen</title>
<para>
Der Formatstring unterstützt nummerierte Argumente und kann daher auch
ihre Position bestimmen (argument numbering/swapping).
</para>
<programlisting role="php">
<![CDATA[
<?php
$anzahl = 5;
$ort = 'Baum';
$format = 'Es sind %d Affen auf dem %s';
echo sprintf($format, $anzahl, $ort);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Es sind 5 Affen auf dem Baum
]]>
</screen>
<para>
Aber nehmen
wir einmal an, dass wir den Formatstring in einer separaten Datei
erstellen, da wir ihn internationalisieren wollen und deshalb wie
folgt umschreiben:
</para>
<programlisting role="php">
<![CDATA[
<?php
$format = 'Der %s enthält %d Affen';
echo sprintf($format, $anzahl, $ort);
?>
]]>
</programlisting>
<para>
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:
</para>
<programlisting role="php">
<![CDATA[
<?php
$format = 'Der %2$s enthält %1$d Affen';
echo sprintf($format, $anzahl, $ort);
?>
]]>
</programlisting>
<para>
Ein weiterer Vorteil ist, dass die Platzhalter wiederholt werden
können, ohne mehr Argumente im Code hinzufügen zu müssen.
</para>
<programlisting role="php">
<![CDATA[
<?php
$format = 'Der %2$s enthält %1$d Affen.
%1$d Affen sind ziemlich viel für einen %2$s.';
echo sprintf($format, $anzahl, $ort);
?>
]]>
</programlisting>
<para>
Wenn Argumenttausch verwendet wird, muss die
<literal>n$</literal>-<emphasis>Positionsangabe</emphasis> direkt nach dem
Prozentzeichen (<literal>%</literal>) folgen, vor jeglichen anderen
Angaben, wie unten zu sehen ist.
</para>
</example>
<example>
<title>Angabe von Füllzeichen</title>
<programlisting role="php">
<![CDATA[
<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
......123
000000123
]]>
</screen>
</example>
<example>
<title>Positionstausch mit weiteren Spezifikatoren</title>
<programlisting role="php">
<![CDATA[
<?php
$format= 'Der %2$s enthält %1$04d Affen';
echo sprintf($format, $anzahl, $ort);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Der Baum enthält 0005 Affen.
]]>
</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;
echo "\n";
$formatted = sprintf("%01.2f", $money);
echo $formatted;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
123.1
123.10
]]>
</screen>
</example>
<example>
<title><function>sprintf</function>: Wissenschaftliche Notation</title>
<programlisting role="php">
<![CDATA[
<?php
$number = 362525200;
echo sprintf("%.3e", $number);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
3.625e+8
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>printf</function></member>
<member><function>fprintf</function></member>
<member><function>vprintf</function></member>
<member><function>vsprintf</function></member>
<member><function>vfprintf</function></member>
<member><function>sscanf</function></member>
<member><function>fscanf</function></member>
<member><function>number_format</function></member>
<member><function>date</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
-->