2012-06-28 23 views
6

Ich habe Probleme beim Schreiben in eine Datei, obwohl is_writable() wahr zurückgibt. Natürlich existiert die Datei und ist offensichtlich lesbar. Hier ist der Code:PHP is_writable() gibt true zurück, aber file_put_contents() gibt false zurück

$file = "data"; 
echo file_get_contents($file)."<br>"; 
echo is_writable($file) ? "is writable<br>" : "not writable<br>"; 
if (file_put_contents($file, "ghijkl", FILE_APPEND) === FALSE) echo "failed<br>"; 
echo file_get_contents($file)."<br>"; 

Und hier ist die Ausgabe:

abcdef 
is writable 
failed 
abcdef 
+1

@interlude: ist es nicht offensichtlich? – zerkms

+0

sieht aus wie duplicate von http://stackoverflow.com/questions/4917811/file-put-contents-permission-denied – naiquevin

+0

@interlude: siehst du '==' irgendwo? – zerkms

Antwort

0

Haben Sie den Besitz der Datei überprüfen? Es könnte der Grund sein, versuchen Sie, diesen Code auszuführen:

chown username:groupname your_file.txt 

Denken Sie daran, den Benutzernamen ändern: Gruppenname. Hoffe es funktioniert für dich!

0

Vielleicht versuchen Sie, in ein Verzeichnis zu schreiben, keine Datei - das heißt, etwas, das beschreibbar ist, aber Sie können nicht anhängen. Nur eine Vermutung.

0

Sie haben diese verwenden:

$file=realpath('data'); 

Dann müssen Sie diese in versuchen Datei setzen Inhalte und zuletzt über $file verwenden mit Dateityp wie (filename.filetype) zu geben.

file_put_contents($file,'fgdfgfg'); 
1

So müssen nur ich in der Konsole eingeben meinem Fall freien Platz im Dateisystem überprüfen:
df -h
Dateisystem Größe Gebrauchte Avail Kapazität auf
4,0G /dev/da0s1f 4.3G Mounted - 68M 102%/usr

freien Speicherplatz und Funktion file_put_contents arbeitet nach diesem