Bonjour,
Je souhaite insérer du contenu dans un fichier de format texte.
J'utilise pour cela la méthode "fopen / fwrite / fclose".
La particularité est que, si le
fopen() et le
fclose() se trouvent dans le script principal,
la fonction
fwrite() se trouve, elle, dans une fonction que j'ai nommée
ecriture().
Nous savons tous que la fonction
fwrite() a besoin de deux paramètres :
- le flux du fichier (ici,
$fich_imp) de type
resource
- le contenu à insérer (ici,
"Toto est content.") de type
string
Apparemment, une variable de type
resource ne peut pas être passée en paramètre d'une fonction
car la variable
$fichier est considérée comme de type
string.
De ce fait, la fonction
fwrite() ne fonctionne pas.
Z'auriez pas des fois une solution pour que ça marche ?
Merci,
function ecriture($fichier, $contenu)
{ fwrite($fichier, $contenu."\n");
}
$fich_imp = fopen('/repertoire/import.txt','a'); // j'ouvre mon fichier en mode APPEND, en le créant si nécessaire
...
while ($toto=='happy')
{ ecriture($fich_imp,'Toto est content.'); // j'appelle la fonction ecriture() pour y insérer un contenu
}
...
fclose($fich_imp); // je ferme la ressource
PS : je pourrais changer de méthode et me contenter d'utiliser la fonction
file_put_contents(),
qui, elle, n'a pas besoin de
resource en paramètre mais seulement du nom du fichier,
mais pour des raisons de performance et, surtout, d'appel récursif de la fonction
ecriture(),
l'utilisation de
fwrite() est de loin préférable.