fscanf()
Was ist die fscanf()-Funktion?
Die fscanf()-Funktion ist eine integrierte PHP-Funktion, die Daten aus einer Datei gemäß einem angegebenen Format liest. Sie ändert die übergebenen Variablen per Referenz und gibt die Anzahl der erfolgreich gelesenen Felder zurück oder false im Fehlerfall.
Hier ist die grundlegende Syntax der fscanf()-Funktion:
Die PHP-Syntax von fscanf()
fscanf(file, format, ...);Wobei file der Dateizeiger zum Lesen ist, format ein String, der das Format der zu lesenden Daten angibt, und ... eine oder mehrere Variablen darstellt, um die gelesenen Daten zu speichern.
So verwenden Sie die fscanf()-Funktion?
Die Verwendung der fscanf()-Funktion ist unkompliziert. Folgen Sie diesen Schritten:
- Öffnen Sie die Datei, die Sie lesen möchten, mit der
fopen()-Funktion im Nur-Lese-Modus und überprüfen Sie, ob sie ein gültiges Ressourcenobjekt zurückgibt. - Verwenden Sie eine Schleife, die den Rückgabewert von
fscanf()überprüft, da sie Token basierend auf dem Formatstring liest und nicht an feste Zeilen gebunden ist; sie kann sich über mehrere Zeilen erstrecken oder bei Leerzeichen stoppen. - Rufen Sie
fscanf()innerhalb der Schleife auf und übergeben Sie den Dateizeiger, den Formatstring sowie vorinitialisierte Variablen. Überprüfen Sie den Rückgabewert, um Fehler oder ein unerwartetes Dateiende zu behandeln. - Schließen Sie die Datei mit der
fclose()-Funktion.
Hier ist ein Beispielcode-Snippet, das die Verwendung der fscanf()-Funktion veranschaulicht:
So verwenden Sie die fscanf()-Funktion?
<?php
$filename = 'data.txt';
$file = fopen($filename, 'r');
if ($file === false) {
die("Error: Could not open file.");
}
while (($count = fscanf($file, "%s %s %d %f", $first_name, $last_name, $age, $salary)) === 4) {
echo "Name: $first_name $last_name\nAge: $age\nSalary: $salary\n";
}
fclose($file);
?>In diesem Beispiel öffnen wir die Datei data.txt mit fopen() und überprüfen, ob sie eine gültige Ressource zurückgibt. Anschließend verwenden wir eine while-Schleife, die den Rückgabewert direkt überprüft, um Endlosschleifen zu verhindern, falls fscanf() eine unvollständige Zeile oder das Ende der Datei (EOF) erreicht. fscanf() ändert die Variablen per Referenz und gibt die Anzahl der erfolgreich zugewiesenen Felder zurück; die Schleife läuft nur weiter, wenn alle vier Felder gelesen wurden. Zu den gängigen Formatbezeichnern gehören %s (Zeichenkette), %d (Ganzzahl), %f (Gleitkommazahl) und %c (einzelnes Zeichen). Abschließend geben wir die Daten aus und schließen die Datei mit fclose().
Verwandte Funktionen Für ähnliche Aufgaben können Sie sscanf() zum Parsen formatierter Zeichenfolgen anstelle von Dateien oder fgetcsv() zum zeilenweisen Lesen von CSV-Dateien verwenden.
Fazit
Die fscanf()-Funktion ist ein nützliches Werkzeug in PHP zum Lesen formatierter Daten aus Dateien. Indem Sie die in diesem Leitfaden beschriebenen Schritte befolgen, können Sie die fscanf()-Funktion problemlos in Ihren PHP-Projekten verwenden, um formatierte Daten aus Dateien zu lesen.
Praxis
Was ist die Funktion von fscanf() in PHP?