Beschrijving
string
sprintf
( string format [, mixed args])
Geeft
een
string
weer
die
geproduceerd
is
volgens
de
formatting
string
format
.
De
format
string
bestaat
uit
nul
of
meer
directives
:
normale
karakters
(
uitgezonderd
%
)
die
rechtstreeks
gekopieerd
worden
naar
het
resultaat
,
en
conversie
specificaties
,
die
elk
resulteren
in
het
opvangen
van
zijn
eigen
parameter
.
Dit
is
van
toepassing
op
sprintf(
)
als
wel
printf(
)
.
Elke
conversie
specificatie
bestaat
uit
een
procent
teken
(
%
)
,
gevolgd
door
een
of
meer
van
deze
elementen
,
in
volgorde
:
-
Een
optionele
padding
specifier
die
bepaalt
welk
karakter
er
wordt
gebruikt
voor
het
padden
van
de
resultaten
naar
de
correcte
string
lengte
.
Dit
kan
een
space
karakter
of
een
0
(
nul
karakter
)
zijn
.
Een
afwisselend
padding
karakter
kan
gespecificeerd
worden
door
een
enkele
quote
(
'
)
mee
te
geven
.
Zie
de
voorbeelden
hieronder
.
-
Een
optionele
alignment
specifier
die
vertelt
of
het
resultaat
links
of
rechts
uitgelijnd
moet
worden
.
De
default
is
rechts
uitgelijnd
;
een
-
karakter
kan
gebruikt
worden
voor
het
links
uitlijnen
.
-
Een
optioneel
nummer
,
een
width
specifier
die
vertelt
hoeveel
karakters
(
minimaal
)
in
moet
resulteren
.
-
Een
optionele
precision
specifier
die
vertelt
hoeveel
decimale
cijfers
er
moeten
weergegeven
voor
floating-point
getallen
.
Deze
optie
heeft
geen
effect
op
andere
types
dan
double
.
(
Een
andere
functie
die
nuttig
is
voor
het
formatteren
van
nummers
is
number_format(
)
.
)
-
Een
type
specifier
die
vertelt
volgens
welk
type
de
argument
data
moet
behandeld
worden
.
Mogelijke
types
:
%
-
een
literal
procent
karakter
.
Geen
argument
nodig
.
|
b
-
het
argument
wordt
behandeld
als
een
integer
,
en
gepresenteerd
als
een
binair
getal
.
|
c
-
het
argument
wordt
behandeld
als
een
integer
,
en
gepresenteerd
als
het
karakter
met
die
ASCII
waarde
.
|
d
-
het
argument
wordt
behandeld
als
een
integer
,
en
gepresenteerd
als
een
decimaal
nummer
.
|
f
-
het
argument
wordt
behandeld
als
een
double
,
en
wordt
gepresenteerd
als
een
floating
point
nummer
.
|
o
-
het
argument
wordt
behandeld
als
een
integer
,
and
gepresenteerd
als
een
octaal
nummer
.
|
s
-
het
argument
wordt
behandeld
als
en
gepresenteerd
als
een
string
.
|
x
-
het
argument
wordt
behandeld
als
een
integer
en
gepresenteerd
als
een
hexadecimal
number
(
met
kleine
letters
)
.
|
X
-
het
argument
wordt
behandeld
als
een
integer
en
gepresenteerd
als
een
hexadecimaal
nummer
(
met
hoofdletters
)
.
|
Sinds
PHP
4.0.6
wordt
argument
nummering
/
swapping
ondersteund
in
de
format
string
.
Hier
is
een
voorbeeld
:
Voorbeeld
1
.
$format
=
"
Er
zijn
%d
apen
in
de
%s"
;
printf($format,$num,$plaats)
;
|
|
Dit zou bijvoobeeld "Er zijn 5 apen in de boom" kunnen printen.
Maar stel nou dat we de format strings in een apart bestand
zetten, bijvoorbeeld omdat we het willen internationalizeren en
we herschrijven het als:
Voorbeeld
2
.
$format
=
"
In
de
%s
zitten
%d
apen"
;
printf($format,$num,$plaats)
;
|
|
Nu hebben we een probleem. De volgorde van de placeholders in de
format string komt niet overeen met de volgorde van de
argumenten. We willen de code ongewijzigd houden en simpelweg
aangeven naar welke argumenten de placeholders verwijzen. We
kunnen dan de format string als volgt schrijven:
Voorbeeld
3
.
$format
=
"
In
de
%2\$s
zitten
%1\$d
apen"
;
printf($format,$num,$plaats)
;
|
|
En bijkomend voordeel is dat je de placeholders kan herhalen
zonder meer argumenten in de code toe te voegen. Bijvoorbeeld:
Voorbeeld
4
.
$format
=
"
In
de
%2\$s
zitten
%1\$d
apen
.
Dat
is
een
mooie
%2\$s
vol
met
%1\$s
apen
."
;
printf($format,$num,$plaats)
;
|
|
Zie
ook
:
printf(
)
,
sscanf(
)
,
fscanf(
)
,
en
number_format(
)
.