(PHP 4, PHP 5)
sprintf — Returner en formateret streng
Returnerer en streng produceret af specifikationerne givet i format .
Formateringsstrengen bliver dannet af ingen eller flere direktiver: ordinære tegn (eksklusiv %) som bliver kopieret direkte til resultatet og konverteringsspecifikationer, hvert resulterer i at fange dets eget parameter. Dette gælder for både sprintf() og printf().
Hver konverteringspecifikation består af et procenttegn (%), fulgt af et eller flere af disse elementer, i rækkefølge:
En type specificerer som fortæller hvilken type parameterdataene skal behandles som. Mulige typer:
Siden PHP 4.0.6 understøtter formateringsstrengen parameternummering/ombytning. Her er et eksempel:
Example#1 Parameterombytning
<?php
$format = "Der er %d aber i %s";
printf($format, $num, $location);
?>
Example#2 Parameterombytning
<?php
$format = "%s indeholder %d aber";
printf($format, $num, $location);
?>
Example#3 Parameterombytning
<?php
$format = "%2\$s indeholder %1\$d aber";
printf($format, $num, $location);
?>
Example#4 Parameterombytning
<?php
$format = "%2\$s indeholder %1\$d aber.
Det er et rart %2\$s fuldt af %1\$d aber.";
printf($format, $num, $location);
?>
Se også printf(), sscanf(), fscanf(), vsprintf(), og number_format().
Example#5 printf(): forskellige eksempler
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 er 'A'
// bemærk de dobbelte %%, de udkskriver et enkelt '%'
printf("%%b = '%b'\n", $n); // binær præsentation
printf("%%c = '%c'\n", $c); // print asciitegnet, samme som chr()
function
printf("%%d = '%d'\n", $n); // standard heltalspræsentation
printf("%%e = '%e'\n", $n); // videnskabelig tegnsætning
printf("%%u = '%u'\n", $n); // usigneret heltalspræsentation af et positivt
heltal
printf("%%u = '%u'\n", $u); // usigneret heltalspræsentation af et negativt
heltal
printf("%%f = '%f'\n", $n); // kommatalspræsentation
printf("%%o = '%o'\n", $n); // oktal præsentation
printf("%%s = '%s'\n", $n); // strengpræsentation
printf("%%x = '%x'\n", $n); // hexadecimal præsentation (små bogstaver)
printf("%%X = '%X'\n", $n); // hexadecimal præsentation (store bogstaver)
printf("%%+d = '%+d'\n", $n); // tegnspecifikator på et positivt heltal
printf("%%+d = '%+d'\n", $u); // tegnspecifikator på et negativt heltal
?>
Resultatet af dette program ville være:
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
Example#6 printf(): strengspecifikatorer
<?php
$s = 'abe';
$t = 'rigtigt mange aber';
printf("[%s]\n", $s); // standard strengudskrift
printf("[%10s]\n", $s); // højrestillet med mellemrum
printf("[%-10s]\n", $s); // venstrestillet med mellemrum
printf("[%010s]\n", $s); // nuludfyldning virker også på strenge
printf("[%'#10s]\n", $s); // brug det normale udfyldningstegn '#'
printf("[%10.10s]\n", $t); // venstrestillet, men afskåret ved 10 tegn
?>
Resultatet af dette program ville være:
[abe] [ abe] [abe ] [0000000abe] [#######abe] [rigtigt ma]
Example#7 sprintf(): nuludfyldte heltal
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Example#8 sprintf(): formater valuta
<?php
$money1 = 68.75;
$formatted = sprintf("%01.2f", $money1); // echo $formatted ville udskrive
"123.10"
?>
Example#9 sprintf(): videnskabeligt tegnsystem
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // udskriver 3.63e+8
?>