Funktio vfprintf
Funktio vfprintf kirjoittaa merkkijonon, joka on muotoiltu spesifikaattoreiden mukaisesti, tiedostovirtaan. Se ottaa ensimmäisenä parametrina tiedostoresurssin, toisena muotoilumerkkijonon ja kolmantena argumenttitaulukon sijoittamista varten. Muotoilumerkkijonossa käytetään erikoismerkkejä (muotoiluspesifikaattoreita), jotka alkavat merkillä % ja hallitsevat tulosteen muotoilua.
Syntaksi
vfprintf(resource $handle, string $format, array $args): int
Muotoiluspesifikaattorit
| Spesifikaattori | Kuvaus |
|---|---|
%s |
Merkkijono |
%d |
Etumerkillinen kokonaisluku (desimaali) |
%u |
Etumerkitön kokonaisluku (desimaali) |
%f |
Liukuluku (maakohtainen) |
%F |
Liukuluku (ei maakohtainen) |
%c |
Merkki ASCII-koodin mukaan |
%x |
Kokonaisluku heksadesimaalijärjestelmässä (pieni kirjain) |
%X |
Kokonaisluku heksadesimaalijärjestelmässä (iso kirjain) |
%o |
Kokonaisluku oktaalijärjestelmässä |
%b |
Kokonaisluku binäärijärjestelmässä |
%e |
Tieteellinen merkintätapa (pieni kirjain) |
%E |
Tieteellinen merkintätapa (iso kirjain) |
%g |
Lyhyt muoto %e tai %f |
%G |
Lyhyt muoto %E tai %F |
%% |
Prosenttimerkki |
Esimerkki
Muotoillun merkkijonon kirjoittaminen tiedostoon:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
Tiedoston output.txt sisältö:
'Number: 10, Float: 20.50, String: test'
Esimerkki
Eri spesifikaattoreiden käyttö:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
Tulosteen tulos:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''