(PHP 4, PHP 5)
sprintf — Restituisce una stringa formattata
La funzione restituisce una stringa formattata in base al parametro
format
.
La stringa di formato è composta da 0 o più direttive: i caratteri ordinari (escluso il %) sono copiati direttamente nel risultato, mentre le specifiche di conversione, scaricano il proprio parametro. Queste note si applicano alle funzioni fprintf(), sprintf() e printf().
Ciascun parametro di conversione consiste nel segno percento (%), seguito da uno più dei seguenti elementi nell'ordine si ha:
Una specifica di tipo che indica il tipo di dati dell'argomento. I possibili tipi sono:
A partire dal PHP 4.0.6 la stringa di formato supporta lo scambio dei parametri. Eccone un esempio:
Example #1 Scambio dei parametri
<?php
$format = "There are %d monkeys in the %s";
printf($format, $num, $location);
?>
Example #2 Scambio dei parametri
<?php
$format = "The %s contains %d monkeys";
printf($format, $num, $location);
?>
Example #3 Scambio dei parametri
<?php
$format = "The %2\$s contains %1\$d monkeys";
printf($format, $num, $location);
?>
Example #4 Scambio di parametri
<?php
$format = "The %2\$s contains %1\$d monkeys.
That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);
?>
Vedere anche printf(), sscanf(), fscanf(), vsprintf() e number_format().
Example #5 Esempi di uso di printf()
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'
// attenzione che i doppi %%, visualizzano il carattere '%'
printf("%%b = '%b'\n", $n); // rappresentazione binaria
printf("%%c = '%c'\n", $c); // visualizza un carattere ASCII, coma la funzione chr()
printf("%%d = '%d'\n", $n); // rappresentazione di un intero standard
printf("%%e = '%e'\n", $n); // notazione scientifica
printf("%%u = '%u'\n", $n); // rappresentazione di un intero positivo privo di segno
printf("%%u = '%u'\n", $u); // rappresentazione di un intero negativo privo di segno
printf("%%f = '%f'\n", $n); // rappresentazine in virgola mobile
printf("%%o = '%o'\n", $n); // rappresentazione ottale
printf("%%s = '%s'\n", $n); // stringa
printf("%%x = '%x'\n", $n); // rappresentazione esadecimale (minuscolo)
printf("%%X = '%X'\n", $n); // rappresentazione esadecimale (maiuscolo)
printf("%%+d = '%+d'\n", $n); // indicazione del segno su un intero positivo
printf("%%+d = '%+d'\n", $u); // indicazione del segno su un intero negativo
?>
L'output di questo programma sarà:
%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(): specifiche di stringa
<?php
$s = 'monkey';
$t = 'many monkeys';
printf("[%s]\n", $s); // output standard di stringa
printf("[%10s]\n", $s); // accostamento a destra con spazi
printf("[%-10s]\n", $s); // accostamento a sinistra con spazi
printf("[%010s]\n", $s); // completamento con zero funziona anche con le stringhe
printf("[%'#10s]\n", $s); // utilizza il carattere di riempimento '#'
printf("[%10.10s]\n", $t); // accostamento a sinistra con taglio a 10 caratteri
?>
L'output di questo programma sarà:
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
Example #7 sprintf(): interi completati con zeri
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Example #8 sprintf(): formattazione della moneta
<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money visualizzerà "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted visualizzerà "123.10"
?>
Example #9 sprintf(): notazione scientifica
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // visualizza 3.63e+8
?>