printf()
Formatierte Ausgabe
Mit printf() kann das Format des anzuzeigenden Arguments vorgeschrieben werden.
Pro Umsetzungsanweisung kann nur ein Argument übergeben werden. Es können aber im Umsetzungsstring z.B. 3 Umsetzungsanweisungen gemacht werden und dann 3 Argumente übergeben werden.
Das % leitet jede Umsetzung an:
printf()
<?php
printf("Als String: %s", "Text<br />\n");
printf("Ganze Zahl: %d<br />\nMit Komma: %.2f", 123, 123);
printf("<br />\nBinärzahl: %b<br />\nASCII Zeichen: %c<br />\nOktalzahl: %o", 123, 123, 123);
printf("<br />\nHexadezi Gross: %X<br />\nHexadezi klein: %x", 123, 123);
?>
Ganze Zahl: 123
Mit Komma: 123.00
Binärzahl: 1111011
ASCII Zeichen: {
Oktalzahl: 173
Hexadezi Gross: 7B
Hexadezi klein: 7b
Führende Füllzeichen
Für Inhaltsverzeichnisse, Tabellen oder Daten in Datenbanken kann die Anzahl Zeichen einer Zeile (Feldbreite) festgelegt werden, bei kürzerem Argument werden die fehlenden Füllzeichen vorne ergänzt.
Die Füllzeichen Null oder Lehrschlag werden automatisch erkannt, anderen Füllzeichen muss ein einfaches Anführungszeichen voran gestellt werden. Das Ganze muss in pre-Tags stehen.
<?php
printf("%025d", 123); // Füllzeichenspezifier Null, total Feldbreite 25 Zeichen, Format: dezimalzahl
echo "<br />";
printf("% 25.2f", 123); // Füllzeichenspezifier Leehrschlag, total Feldbreite 25 Zeichen, Format: .2 Stellen nach flieskomma
echo "<br />";
printf("%'.25s", "string"); // Füllzeichenspezifier Punkt, total Feldbreite 25 Zeichen, Format: string
echo "<br />";
printf("%'-25d", "123"); // Füllzeichenspezifier Bis, total Feldbreite 25 Zeichen, Format: dezimalzahl
?>
0000000000000000000000123
123.00
...................string
----------------------123
printf() Tabellen
Wird kein Füllzeichenspezifier angegeben, dann gilt die Feldbreite zum Platzieren.
Achtung: Die Ausrichtung erfolgt vor den Punkt der 2 Stellen - das heist, der Titel 'Preis' würde 3 Zeichen hinten heraus hängen, wäre die Feldbreite Total Anzahl Zeichen breit:
Gekürzte Feldbreite: %-18s%10s =28 Zeichen, Anzahl Zeichen: %-21s%7.2f = 28 + 3 (Punkt und zwei nach Punkt)
<?php
$einkauf=array("Schuhe"=>125, "Hemd"=>78.90,"Hose"=>89);
$total="$einkauf[Schuhe]"+"$einkauf[Hemd]"+"$einkauf[Hose]";
echo"<pre>";
printf("%-18s%10s\n","Artikel","Preis");
printf("%'_28s\n", ""); // Füllzeichen-Linie
foreach($einkauf as $key=>$value) {
printf("%-21s%7.2f\n","$key","$value");
}
printf("%'_28s\n", ""); // Füllzeichen-Linie
printf("%-21s%7.2f\n","Total","$total");
printf("%'=28s\n", ""); // Füllzeichen-Linie
echo"</pre>";
?>
Artikel Preis ____________________________ Schuhe 125.00 Hemd 78.90 Hose 89.00 ____________________________ Total 292.90 ============================