fwrite
(PHP 4, PHP 5, PHP 7)
fwrite — Écrit un fichier en mode binaire
Description
$handle
, string $string
[, int $length
] )
fwrite() écrit le contenu de la chaîne
string
dans le fichier pointé par
handle
.
Liste de paramètres
-
handle
-
Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().
-
string
-
La chaîne à écrire.
-
length
-
Si la longueur
length
est fournie, l'écriture s'arrêtera aprèslength
octets, ou à la fin de la chaîne (le premier des deux).Notez que si
length
est fourni, alors l'option de configuration magic_quotes_runtime sera ignorée, et les slash seront conservés.
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
handle
est ouvert en mode ajout (append), fwrite() sera atomique (sauf si la taille destring
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 !
?>
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
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>
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
Version en cache
26/12/2024 03:22:14 Cette version de la page est en cache (à la date du 26/12/2024 03:22:14) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-fwrite.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.