Forum und email
sprintf

sprintf

(PHP 3, PHP 4, PHP 5)

sprintf -- Vrátit formátovaný řetězec

Popis

string sprintf ( string format [, mixed args [, mixed ...]] )

Vrací řetězec vytvořený podle formátovacího řetězce format.

Formátovací řetězec se skládá z nula nebo více direktiv: běžných znaků (kromě %), které se přímo kopírují do výsledku, a převodních specifikací, z nichž každá přijímá jeden argument. Toto platí pro sprintf() i printf().

Každá převodní specifikace se skládá ze znaku procenta (%), následovaného jedním nebo více z těchto znaků, v tomto pořadí:

  1. Volitelný padding specifier, který určuje, jaký znak se použije na doplnění výsledku na správnou délku řetězce. Může to být mezera nebo 0 (písmeno nula). Default je nula. Jiný doplňující znak můžete zadat tak, že před něj předřadíte jednoduchou uvozovku ('). Viz ukázky níže.

  2. Volitelný alignment specifier, který určuje, jestli se má výsledek zarovnat doleva nebo doprava. Default je doprava, pomlčka (-) to změní na doleva.

  3. Volitelné číslo width specifier, které určuje, kolik znaků (minimálně) má obsahovat výsledek převodu.

  4. Volitelný precision specifier, který určuje, kolik desetinných míst se má zobrazit u čísel s desetinnou čárkou. Tento přepínač nemá žádný vliv na jiné typy než double. (Další funkcí užitečnou na formátování čísel je number_format().)

  5. type specifier, který určuje, za jaký typ se mají data argumentu považovat. Možné typy:

    % - a doslovný znak procenta. Nevyžaduje se žádný argument.
    b - argument se považuje za integer a je prezentován jako binární číslo.
    c - argument se považuje za integer a je prezentován jako znak s touto ASCII hodnotou.
    d - argument se považuje za integer a je prezentován jako desítkové číslo.
    f - argument se považuje za double a je prezentován jako číslo s plovoucí desetinou čárkou.
    o - argument se považuje za integer a je prezentován jako oktalové číslo.
    s - argument se považuje za řetězec a je takto prezentován.
    x - the argument se považuje za integer a je prezentován jako hexadecimální číslo (s malými písmeny).
    X - argument se považuje za integer a je prezentován jako hexadecimální číslo (s kapitálkami).

Viz také: printf(), sscanf(), fscanf() a number_format().

Ukázky

Příklad 1. Ukázka sprintf(): zero-padded integers

$isodate = sprintf ("%04d-%02d-%02d", $year, $month, $day);

Příklad 2. Ukázka sprintf(): formatting currency

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf ("%01.2f", $money);
// echo $formatted will output "123.10"