Функција vfprintf
Функцијата vfprintf запишува стринг, форматиран според спецификаторите, во датотечен поток. Како прв параметар прифаќа датотечен ресурс, како втор - стринг на формат, како трет - низа на аргументи за замена. Во стрингот на формат се користат специјални знаци (форматни спецификатори), кои започнуваат со знакот % и управуваат со форматирањето на излезот.
Синтакса
vfprintf(resource $handle, string $format, array $args): int
Форматни спецификатори
| Спецификатор | Опис |
|---|---|
%s |
Стринг |
%d |
Цел број со знак (децимален) |
%u |
Цел број без знак (децимален) |
%f |
Број со подвижна точка (зависен од локалата) |
%F |
Број со подвижна точка (не зависен од локалата) |
%c |
Знак според ASCII-код |
%x |
Цел број во хексадецимален систем (мали букви) |
%X |
Цел број во хексадецимален систем (големи букви) |
%o |
Цел број во октален систем |
%b |
Цел број во бинарен систем |
%e |
Научна нотација (мали букви) |
%E |
Научна нотација (големи букви) |
%g |
Кратка нотација %e или %f |
%G |
Кратка нотација %E или %F |
%% |
Знак за процент |
Пример
Запишување на форматиран стринг во датотека:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
Содржина на датотеката output.txt:
'Number: 10, Float: 20.50, String: test'
Пример
Користење на различни спецификатори:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
Резултат на излезот:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''