Ein Lehrbuch zu PHP4 sagt dazu:
Formatierten Output erstellen:
PHP verfügt über 2 Funktionen, die nützlich sind, um formatierten Output zu erzeugen: printf() und sprintf(). Die printf()-Funktion gibt ihren Output aus; die sprintf()-Funktion gibt ihren Output als Stringwert zurück. Beide Funktionen haben im Allgemeinen zwei oder mehr Argumente: Das erste Argument ist ein String, der sogenannte Formatstring, der das Output-Format festlegt; die restlichen Argumente enthalten die Werte, die ausgegeben werden sollen.
Ein einfaches Beispiel:
- Code: Select all
printf("Der Wert von n ist: %d", $n);
Das folgende Beispiel zeigt ein komplexeres Beispiel, in dem mehrere Argumente mit sprintf() ausgegeben werden:
- Code: Select all
$ergebnis = sprintf("Werte: %d, %f", $n, $x);
Der Formatstring besteht aus einer Reihe von gewöhnlichen Zeichen und Direktiven. Als gewöhnliches Zeichen gilt jedes Zeichen, das kein % ist. Gewöhnliche Zeichen werden einfach in den Output kopiert.
Direktiven sind Zeichenfolgen, die mit dem Zeichen % beginnen. Sie legen fest, wie die entsprechenden Argumente formatiert werden. Eine einfache Direktive, wie beispielsweise die aus dem vorausgegangenen Beispiel, kann aus einem %-Zeichen bestehen, auf das eine Typangabe (beispielsweise d) folgt, die festlegt, dass das Argument als Dezimalzahl behandelt werden soll. Es gibt jedoch komplexere Direktiven, die die folgenden Komponenten in der angebenen Reihenfolge enthalten können:
Füllzeichen (optional): Das Füllzeichen legt fest, welches Zeichen verwendet werden soll, um das Ergebnis bis zur angegebenen Stringgröße aufzufüllen. Wenn kein Füllzeichen angegeben wird, wird das Ergebnis mit Leerzeichen aufgefüllt. Das Füllzeichen kann ein Leerzeichen oder eine 0 (Null) sein. Ein Leerzeichen wird gewöhnlich als Füllzeichen für Strings verwendet, während eine 0 üblicherweise für Zahlen verwendet wird. Andere Füllzeichen können definiert werden, indem dem Zeichen ein einfaches Anführungszeichen (') vorangestellt wird. Um ein Ergebnis mit Unterstreichungszeichen zu füllen, schreibt man beispielsweise '_.
Ausrichtungszeichen (optional): Ein Ausrichtungszeichen legt fest, ob das Ergebnis links-oder rechtsbündig ausgerichtet werden soll. Wenn keine Ausrichtung angegeben wird, wird das Ergebnis standardmäßig rechtsbündig ausgerichtet. Wenn ein Bindestrich (-) angegeben wird, wird das Ergebnis linksbündig ausgerichtet.
Größenangabe (optional): Die Größenangabe ist eine Ganzzahl, die die Mindestanzahl der Zeichen des Ergebnisses festlegt. Wenn das Argument vom Typ double ist, legt die Größenangabe die Mindestanzahl der Zeichen vor dem Dezimalpunkt (Dezimalkomma) fest. Wenn das Ergebnis weniger Zeichen enthält, wird es aufgefüllt.
Genauigkeit (optional): Die Genauigkeit wird durch einen Dezimalpunkt festgelegt, auf den eine Ganzzahl folgt, die die Anzahl der Dezimalziffern angibt, die in dem Ergebnis angegeben werden sollen. Die Genauigkeit wird nur beim Datentyp double berücksichtigt.
Formatzeichen (erforderlich): Das Formatzeichen legt fest, wie das Argument behandelt und ausgegeben werden soll. Die Funktionen kennen folgende Formatzeichen:
b behandelt das Argument als Ganzzahl und gibt es als binären Wert aus.
c behandelt das Argument als Ganzzahl und gibt das Zeichen aus, das zu dem ASCII-Wert des Arguments gehört.
d behandelt das Argument als Ganzzahl und gibt es als Dezimalzahl aus.
f behandelt das Argument als double-Wert und gibt es als Fließkommawert aus.
o behandelt das Aregument als Ganzzahl und gibt es als Oktalwert aus.
s behandelt das Argument als String und gibt es aus.
x behandelt das Argument als Ganzzahl und gibt es als Hexadezimalzahl in Kleinbuchstaben aus.
X behandelt das Argument als Ganzzahl und gibt es als Hexadezimalzahl in Großbuchstaben aus.
Um ein Prozentzeichen in den Output von printf() oder sprintf() zu schreiben, muss man zwei %-Zeichen notieren (%%). Dann wird die Sonderfunktion von % ignoriert.
Da das Formatieren von Zahlen mit den beschriebenen Funktionen sehr umständlich sein kann, kann man hier oft auch die Funktion number_format(zahl) verwenden. Beispiel:
number_format (zahl, dezimalstellen, dezimalpunktzeichen, tausenderzeichen)wobei das Argument Zahl erfoderlich ist, die drei anderen Argumente sind optional.
- Code: Select all
number_format(1.234, 2)
gibt den Wert 1.23 zurück.
Dein Beispiel:
- Code: Select all
printf( "Formatparameter 5.2x: %5.2f <br />\n", $value );
sagt uns also: da printf() verwendet wird, kommt der Output nicht als automatisch als String zurück.
Formatparameter 5.2x: wird als gewöhnlicher Text behandelt.
%5.2f ist durch das %-Zeichen als Formatstring zu erkennen. Da die 5 keine 0 und kein Bindestrich (-) ist, sondern eine Ganzzahl, ist sie die Größenangabe, die .2 die Genauigkeit und f das Formatzeichen, wodurch der Output im Typ double als Fließkommawert zurückkommt. Dieses Format hat eine Wirkung auf die Größenangabe (siehe oben). Deiner 255 werden nun nämlich zwei Leerzeichen vorangestellt, um die 5 Stellen zu füllen. An der Stelle des Formatstrings wird im Output der formatierte Wert von $value angezeigt. Abschließend wird ein HTML-Zeilenumbruch <br> und ein PHP Zeilenumbruch \n an den Output gehängt.
Ich kann Dir so auf Anhieb nicht sagen, ob diese Funktionen in PHP5 erweitert worden sind. Da musst Du Dich echt mal an den Link von Thasmo halten.
cu Micha
Ich denke, dass es einen Weltmarkt für vielleicht fünf Computer gibt. – Thomas Watson, Vorsitzender von IBM, 1943