Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie VFprintf, um den Inhalt mehrerer Datentypen auszugsbedingungen auszuführen

Verwenden Sie VFprintf, um den Inhalt mehrerer Datentypen auszugsbedingungen auszuführen

gitbox 2025-05-29

Was ist vfprintf ()?

vfprintf () ist eine von PHP bereitgestellte Funktion zum Schreiben formatierter Zeichenfolgen in einen angegebenen Dateistrom. Im Gegensatz zu Fprintf () empfängt VFprintf () ein Array von Parameterlisten. Dies macht es flexibler, wenn Sie mehrere Datenarten dynamisch spleißen und verarbeiten.

Funktionsdefinition:

 int vfprintf ( resource $handle , string $format , array $args )
  • $ Handle : Dateizeigerressource, normalerweise zurückgegeben von fopen () .

  • $ Format : Formatzeichenfolge.

  • $ args : Das Array von Daten, die in der formatierten Zeichenfolge eingefügt werden sollen.


Datentypen, die von Formatketten unterstützt werden

In vfprintf () können wir eine Reihe von Formatidentifikatoren verwenden, um verschiedene Arten von Ausgabe zu unterstützen. Zu den allgemeinen gehören:

  • %s : String

  • %d : Ganzzahl (Dezimal)

  • %f : schwebende Punktzahl

  • %X : Hexadezimal (Kleinbuchstaben)

  • %X : Hexadezimal (Kappen)

  • %B : Binär

  • %C : ASCII -Zeichen

Diese Kennungen können mit Modifikatoren (wie Präzision, Polsterung usw.) kombiniert werden, um komplexere Ausgangsanforderungen zu erfüllen.


Praktische Beispiele

Beispiel 1: Schreiben Sie Strings und Ganzzahlen

 <?php
$fp = fopen("log.txt", "a");
$name = "Alice";
$age = 30;
vfprintf($fp, "Name: %s, Age: %d\n", array($name, $age));
fclose($fp);
?>

Dieser Code schreibt Folgendes in die Datei log.txt :

 Name: Alice, Age: 30

Beispiel 2: Schreiben Sie eine schwimmende Punktzahl und führen Sie zwei Dezimalstellen durch

 <?php
$fp = fopen("log.txt", "a");
$product = "Coffee";
$price = 19.456;
vfprintf($fp, "Product: %s, Price: \$%.2f\n", array($product, $price));
fclose($fp);
?>

Ausgabe:

 Product: Coffee, Price: $19.46

%.2f hier bedeutet, zwei Dezimalstellen zu halten.


Beispiel 3: Generieren Sie dynamisch URLs und schreiben Sie Dateien

 <?php
$fp = fopen("links.txt", "a");
$endpoint = "api/data";
$id = 42;
$url = "https://gitbox.net/%s?id=%d";
vfprintf($fp, $url."\n", array($endpoint, $id));
fclose($fp);
?>

Der in die Datei geschriebene Inhalt laute:

 https://gitbox.net/api/data?id=42

Beispiel 4: Mischtyp -Schreibprotokoll

 <?php
$fp = fopen("debug.log", "a");
$time = date("Y-m-d H:i:s");
$userId = 101;
$success = true;
$ip = "192.168.1.10";
vfprintf($fp, "[%s] User ID: %d, Success: %s, IP: %s\n", array(
    $time, $userId, $success ? "true" : "false", $ip
));
fclose($fp);
?>

Die Ausgabe ist ähnlich:

 [2025-05-29 15:30:00] User ID: 101, Success: true, IP: 192.168.1.10

Tipps und Vorsichtsmaßnahmen

  1. Sicherheit : Vermeiden Sie die Eingabe von Benutzer, die direkt in Formatketten gespleißt werden, wodurch Formatinjektionsangriffe verhindern.

  2. Die Reihenfolge des Arrays muss genau sein : Das Parameter -Array muss der Formatzeichenfolge nacheinander entsprechen, und die Reihenfolge kann nicht falsch sein.

  3. Dateiberechtigungen : Stellen Sie sicher, dass die von Ihnen geschriebene Datei eine Schreibberechtigung hat, andernfalls wird fopen () oder vfprintf () fehlgeschlagen.

  4. Mehrsprachige Anpassung : Wenn Sie die Ausgabe formatieren, können Sie sie mit Sprintf () und vPintf () vorbearbeiten.