"resource" en paramètre d'une fonction ?
Posté : 22 févr. 2019, 21:14
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,
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.
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.