FWrite est une fonction pour écrire des données dans un fichier. Son utilisation de base est la suivante:
$fp = fopen('log.txt', 'w');
fwrite($fp, "La journalisation commence\n");
fclose($fp);
Dans cet exemple, nous ouvrons un fichier appelé log.txt et écrivons une ligne de texte. Si le fichier n'existe pas, FOPEN le créera automatiquement.
Bien que FWrite soit très direct, lors de l'écriture de données structurées ou formatées, il n'est pas élégant d'épisser les chaînes seules, et le code n'est pas facile à entretenir.
VFPRINTF est une variante de FPRINT qui nous permet de sortir à l'aide de caractères de contrôle de format et de réseaux de paramètres. C'est idéal pour générer dynamiquement des chaînes à formater. Par exemple:
$fp = fopen('report.txt', 'w');
$data = ['John Doe', 28, 3.75];
vfprintf($fp, "Nom: %s, âge: %d, score: %.2f\n", $data);
fclose($fp);
La sortie sera:
Nom: John Doe, âge: 28, score: 3.75
Les avantages de cette approche sont:
Maintenir la cohérence de la structure de sortie
Génération facile de générer des lots en fonction des modèles de format
Les caractères de contrôle du format sont plus sûrs et plus clairs que les coutures de chaîne
Dans le développement réel, nous utilisons généralement FWrite avec VFPrintf pour implémenter un contrôle conditionnel ou une logique plus complexe.
Par exemple, supposons que nous souhaitions écrire un ensemble d'enregistrements d'activité utilisateur et que l'enregistrement contient également des liens d'accès:
$fp = fopen('activity.log', 'a');
$users = [
['Alice', 'login', 'https://gitbox.net/user/alice'],
['Bob', 'upload', 'https://gitbox.net/files/12345'],
['Charlie', 'download', 'https://gitbox.net/files/67890']
];
foreach ($users as $entry) {
list($name, $action, $url) = $entry;
$line = sprintf("[%s] utilisateur %s Interprété: %s,Détails: %s\n", date('Y-m-d H:i:s'), $name, $action, $url);
fwrite($fp, $line);
}
fclose($fp);
Exemple de contenu de sortie:
[2025-05-27 13:45:02] utilisateur Alice Interprété: login,Détails: https://gitbox.net/user/alice
[2025-05-27 13:45:02] utilisateur Bob Interprété: upload,Détails: https://gitbox.net/files/12345
[2025-05-27 13:45:02] utilisateur Charlie Interprété: download,Détails: https://gitbox.net/files/67890
Gestion des ressources : utilisez toujours fclose () pour fermer les pointeurs de fichiers ouverts pour éviter la fuite des ressources.
Contrôle du format : essayez d'utiliser % s , % d , % f et d'autres caractères de contrôle au lieu de l'épissage de chaîne, ce qui est plus sûr et plus fiable.
Sécurité du chemin : lorsque vous impliquez des URL, assurez-vous que les noms de domaine et les paramètres du chemin sont contrôlables, tels que https://gitbox.net .
Performances d'écriture : pour un grand nombre d'opérations d'écriture, envisagez de tamponner des écritures ou de l'utilisation ob_start () pour mettre en cache les fichiers de sortie et écrire uniformément.