Aller au contenu

fscanf()

Qu'est-ce que la fonction fscanf() ?

La fonction fscanf() est une fonction PHP intégrée qui lit des données dans un fichier selon un format spécifié. Elle modifie les variables fournies par référence et renvoie le nombre de champs lus avec succès, ou false en cas d'erreur.

Voici la syntaxe de base de la fonction fscanf() :

La syntaxe PHP de fscanf()

php
fscanf(file, format, ...);

file est le pointeur de fichier à partir duquel lire, format est une chaîne spécifiant le format des données à lire, et ... représente une ou plusieurs variables pour stocker les données lues.

Comment utiliser la fonction fscanf() ?

L'utilisation de la fonction fscanf() est simple. Voici les étapes à suivre :

  1. Ouvrez le fichier à lire à l'aide de la fonction fopen() en mode lecture seule, et vérifiez qu'elle a retourné une ressource valide.
  2. Utilisez une boucle qui vérifie la valeur de retour de fscanf(), car elle lit des jetons en fonction de la chaîne de format plutôt que des lignes fixes, et peut s'étendre sur plusieurs lignes ou s'arrêter à un espace.
  3. Appelez fscanf() à l'intérieur de la boucle, en passant le pointeur de fichier, la chaîne de format et les variables pré-initialisées. Vérifiez sa valeur de retour pour gérer les erreurs ou la fin de fichier inattendue.
  4. Fermez le fichier à l'aide de la fonction fclose().

Voici un extrait de code qui montre comment utiliser la fonction fscanf() :

Comment utiliser la fonction fscanf() ?

php
<?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);
?>

Dans cet exemple, nous ouvrons le fichier data.txt avec fopen() et vérifions qu'il retourne une ressource valide. Nous utilisons ensuite une boucle while qui vérifie directement la valeur de retour, empêchant les boucles infinies si fscanf() rencontre une ligne incomplète ou la fin du fichier (EOF). fscanf() modifie les variables par référence et renvoie le nombre de champs assignés avec succès ; la boucle ne se poursuit que lorsque les quatre champs sont lus. Les spécificateurs de format courants incluent %s (chaîne), %d (entier), %f (virgule flottante) et %c (caractère unique). Enfin, nous affichons les données et fermons le fichier avec fclose().

Fonctions associées Pour des tâches similaires, envisagez sscanf() pour analyser des chaînes formatées au lieu de fichiers, ou fgetcsv() pour lire des fichiers CSV ligne par ligne.

Conclusion

La fonction fscanf() est un outil utile en PHP pour lire des données formatées à partir de fichiers. En suivant les étapes décrites dans ce guide, vous pouvez facilement utiliser la fonction fscanf() dans vos projets PHP pour lire des données formatées à partir de fichiers.

Pratique

Quelle est la fonction de fscanf() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.