Funktion vfprintf
Die Funktion vfprintf schreibt einen String, der gemäß den Spezifikatoren formatiert wurde, in einen Dateistream. Der erste Parameter akzeptiert eine Dateiressource, der zweite - einen Format-String, der dritte - ein Array mit Argumenten für die Einsetzung. Im Format-String werden spezielle Symbole (Format-Spezifizierer) verwendet, die mit dem Zeichen % beginnen und die Formatierung der Ausgabe steuern.
Syntax
vfprintf(resource $handle, string $format, array $args): int
Format-Spezifizierer
| Spezifizierer | Beschreibung |
|---|---|
%s |
String |
%d |
Ganzzahl mit Vorzeichen (dezimal) |
%u |
Ganzzahl ohne Vorzeichen (dezimal) |
%f |
Gleitkommazahl (lokaleabhängig) |
%F |
Gleitkommazahl (nicht lokaleabhängig) |
%c |
Zeichen nach ASCII-Code |
%x |
Ganzzahl im Hexadezimalsystem (Kleinbuchstaben) |
%X |
Ganzzahl im Hexadezimalsystem (Großbuchstaben) |
%o |
Ganzzahl im Oktalsystem |
%b |
Ganzzahl im Binärsystem |
%e |
Wissenschaftliche Schreibweise (Kleinbuchstaben) |
%E |
Wissenschaftliche Schreibweise (Großbuchstaben) |
%g |
Kurzschreibweise %e oder %f |
%G |
Kurzschreibweise %E oder %F |
%% |
Prozentzeichen |
Beispiel
Schreiben eines formatierten Strings in eine Datei:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
Inhalt der Datei output.txt:
'Number: 10, Float: 20.50, String: test'
Beispiel
Verwendung verschiedener Spezifizierer:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
Ausgabeergebnis:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''