P H P   -   Personal Home Page

7.   daten bearbeiten

7.3  daten aufbereiten

7.3.1  sprintf - daten formatieren

Die funktion bereitet ein oder mehrere datenelemente mit hilfe eines formats auf und schreibt das ergebnis in eine zeichenkette.

$zeile = sprintf("format", wert [ , wert ] … );

$zeile zeichenvariable, in der das ergebnis der aufbereitung gespeichert wird.
format zeichenkette oder variable, die das format enthält. Ein format wird wie folgt vereinbart:
"[text] fmanweis [ [text] fmanweis ] . . ."
text beliebige zeichen, die unverändert ausgegeben werden; auch ZWR zulässig.
fmanweis formatanweisung, mit der die aufbereitung gesteuert wird
wert wert, der mit der formatanweisung aufbereitet wird; numerisch, zeichen oder entsprechende variable

formatanweisung

%[vz][fz][-][breite][.dez]typ

%ysmbol für eine formatanweisung; die angabe ist notwendig
vz vorzeichen: + erzwingt bei positiven werten die ausgabe des plus- zeichens, bei negativen werten wird auch ohne diese angabe immer das minus-zeichen ausgegeben.
fz füllzeichen; damit wird die ausgabe bis zur angegebenen breite aufgefüllt. Zulässig ist 0 oder ZWR oder jedes beliebige zeichen, dem aber ein apostroph vorangestellt werden muß. Das füllzeichen kann wahlweise angegeben werden.
breite breite der ausgabe; wahlweise anzugeben. Fehlt die angabe, ist die breite so groß, wie zur aufbereitung des werts nötig ist.
- ausgabe erfolgt linksbündig, fehlt diese angabe, erfolgt die ausgabe rechtsbündig.
.dez anzahl der dezimalstellen; angabe wahlweise und nur für die ausgabe eines numerischen wertes zulässig.
typformattyp; die angabe ist notwendig

formattypen

d - ausgabe als ganzzahl f - ausgabe mit dezimalpunkt
%dganze zahl volle länge %fin voller länge
%5dganze zahl, mindestlänge 5 %.2fmit zwei stellen nach punkt, gerundet
%05dwie zuvor, mit führenden nullen %9.2fwie zuvor, 9 zeichen lang
%09.2fwie zuvor mit führenden nullen

weitere formattypen

%szeichen rechtsbündig %-szeichen linksbündig
%%prozentzeichen%bbinärzahl
%cdem wert entspr. ASCII-zeichen %ooktalzahl
%upos. vorzeichenlose ganzzahl %ewissenschaftl. schreibweise
%xhexa mit kleinbuchstaben%X hexa mit großbuchstaben

beispiele

int: +125 - float: +123.456000 - string: ABCD
int: 125 - float: 123.46 - string: ABCD
int: 125 - float: 123.46 - string: ABCD
int: 00125 - float: 0000123.46 - string: ******ABCD
int: 125 - float: 123.460000 - string: ABCD******
zeichen: } - oktal: 175 - hexa: 7D oder 7d - binär: 1111101

erklärung des beispiels
Ohne erklärung ist das beispiel nur schwer zu verstehen. Es werden in fünf zeilen jeweils die variablen $Z1, $Z2 und $TX mit verschiedenen formaten aufbereitet und dabei die texte "int: ", "float: " und "string: " eingefügt.

$Z1 = 125;aufbereitung als ganzzahl
%+dausgabe ohne breitenangabe und füllzeichen, aber mit vorzeichen
ergibt linksbündig +125
% 5dausgabe mir breite 5 und füllzeichen zwischenraum (ZWR)
ergibt rechtsbündig 125 mit zwei ZWR am anfang
% -5dausgabe mit breite 5 und füllzeichen ZWR
ergibt linksbündig 125 und dann 2 ZWR
%05dausgabe mit breite 5 und füllzeichen 0
ergibt rechtsbündig 00125
%0-5dausgabe mit breite 5 und füllzeichen 0
ergibt linksbündig 125 und dann 2 ZWR, keinesfalls 0, das wäre unsinn
$Z2 = 123.456;aufbereitung als dezimalzahl
%+fausgabe ohne breitenangabe und füllzeichen, aber mit vorzeichen
ergibt +123.456000 wieso hier drei schleppende nullen ??
% 10.2fausgabe mit breite 10, füllzeichen ZWR und zwei dezimalstellen
ergibt rechtsbündig 123.46 und vier ZWR voraus. Es wurde gerundet.
% -10.2fausgabe mit breite 10, füllzeichen ZWR und zwei dezimalstellen
ergibt linksbündig 123.46 und vier ZWR hinterher. Es wurde gerundet
%010.2fausgabe mit breite 10, füllzeichen 0 und zwei dezimalstellen
ergibt rechtsbündig 0000123.46, es wurde gerundet
%0-10.2fausgabe mit breite 10, füllzeichen 0 und zwei dezimalstellen
ergibt linksbündig 123.460000, es wurde gerundet
$TX = "ABCD";aufbereitung als zeichenkette
%sausgabe ohne breitenangabe
ergibt linksbündig ABCD
% 10sausgabe mit breite 10 und füllzeichen ZWR
ergibt rechtsbündig 6 ZWR und ABCD
% -10sausgabe mit breite 10 und füllzeichen ZWR
ergibt linksbündig ABCD und 6 ZWR
%'*10sausgabe mit breite 10 und füllzeichen *
ergibt rechtsbündig ******ABCD
Man beachte das zeichen apostroph vor dem zeichen * im format
%'*-10sausgabe mit breite 10 und füllzeichen *
ergibt linksbündig ABCD******
Man beachte das zeichen apostroph vor dem zeichen * im format
$CH = 125;aufbereitung eines numerischen wertes
%cergibt das zeichen }
%oergibt die oktalzahl 175,
im format steht der buchstabe o, nicht null
%Xergibt die hexadezimalzahl 7D
%xergibt die hexadezimalzahl 7d
%bergibt die binärzahl 1111101


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT