J'ai le code exemple suivantPHP fwrite renvoie toujours le nombre d'octets à écrire même si le fichier n'existe pas, est ce comportement attendu?
<?php
`echo test > /tmp/test.txt`;
$f=fopen("/tmp/test.txt","w+");
`rm /tmp/test.txt`;
var_dump(fwrite($f,"test"));
fclose($f);
file_get_contents("/tmp/test.txt");
Ce qui crée un fichier, ouvre un pointeur vers elle, supprime le fichier tente ensuite d'écrire. Maintenant, je me attends fwrite pour revenir faux ou 0 car aucune donnée ne sera écrite, mais il produit la sortie suivante
int(4)
Warning: file_get_contents(/tmp/test.txt): failed to open stream: No such file or directory in /Stuff/tmp/test3 on line 7
Ainsi, le fwrite réussit apparemment, mais les file_get_contents échoue comme prévu.
Est-ce que le comportement de fwrite devrait renvoyer le nombre d'octets à écrire? Si oui, comment puis-je tester si l'écriture a vraiment réussi?
est avec php 5.3.3
+1 Battu au coup de poing –
J'ai modifié la question pour la rendre plus claire, il ne s'agit pas des fgets, il est écrit fwrite écrit 4 octets dans un fichier qui n'existe pas, ne devrait pas écrire fwrite 0 ou false? – Rwky
+1 rewind ($ f) fonctionnera également (se rapportant à la question originale). – GZipp