fwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

fwriteÉcrit un fichier en mode binaire

Description

fwrite(resource$stream, string$data, ?int$length = null): int|false

fwrite() écrit le contenu de la chaîne data dans le fichier pointé par stream.

Liste de paramètres

stream

Un pointeur de système de fichiers de type ressource qui est habituellement créé en utilisant la fonction fopen().

data

La chaîne à écrire.

length

Si la longueur length est fournie, l'écriture s'arrêtera après length octets, ou à la fin de la chaîne (le premier des deux).

Valeurs de retour

fwrite() retourne le nombre d'octets écrits ou false si une erreur survient.

Erreurs / Exceptions

La fonction fwrite() emet une E_WARNING si une erreur survient.

Historique

VersionDescription
8.0.0length est désormais nullable.

Exemples

Exemple #1 Exemple avec fwrite()

<?php
$filename
= 'test.txt';
$somecontent = "Ajout de chaîne dans le fichier\n";

// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {

// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout

Notes

Note:

Le fait d'écrire dans un flux peut se terminer avant que la chaîne complète ne soit écrite. La valeur retournée par la fonction fwrite() peut être vérifiée comme ceci :

<?php
function fwrite_stream($fp, $string) {
for (
$written = 0; $written < strlen($string); $written += $fwrite) {
$fwrite = fwrite($fp, substr($string, $written));
if (
$fwrite === false) {
return
$fwrite;
}
}
return
$written;
}
?>

Note:

Sur les systèmes qui font la différence entre les fichiers binaires et les fichiers textes (par exemple, Windows), le fichier doit être ouvert avec l'option 'b' inclus dans le paramètre de mode de fopen().

Note:

Si stream est ouvert en mode ajout (append), fwrite() sera atomique (sauf si la taille de data excède la taille du bloc du système de fichiers, sur quelques plates-formes, et tant que le fichier se trouve sur le système de fichiers local). Ainsi, il n'est pas nécessaire d'utiliser la fonction flock() sur une ressource avant d'appeler la fonction fwrite() ; toutes les données seront écrites sans interruption.

Note:

Si l'on écrit 2 fois dans le fichier, les données seront ajoutées à la fin du fichier ; cela signifie que l'exemple suivant ne donnera pas le résultat attendu :

<?php
$fp
= fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// le contenu de 'data.txt' est maintenant 123 et non 23 !
?>

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • file_get_contents() - Lit tout un fichier dans une chaîne
  • pack() - Compacte des données dans une chaîne binaire
To Top