2012-06-28 19 views
6

Mam problem z zapisaniem do pliku, mimo że is_writable() zwraca wartość true. Oczywiście plik istnieje i jest najwyraźniej czytelny. Oto kod:PHP is_writable() zwraca wartość true, ale file_put_contents() zwraca wartość false

$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>"; 

I tu jest wyjście:

abcdef 
is writable 
failed 
abcdef 
+1

@interlude: nie jest to oczywiste? – zerkms

+0

wygląda jak duplikat http://stackoverflow.com/questions/4917811/file-put-contents-permission-denied – naiquevin

+0

@interlude: czy widzisz gdzieś '=='? – zerkms

Odpowiedz

0

Czy sprawdzić własność pliku? Może to być powód, spróbuj uruchomić ten kod:

chown username:groupname your_file.txt 

Pamiętaj, aby zmienić nazwę użytkownika: nazwa grupy. Mam nadzieję, że to działa dla Ciebie!

0

Być może próbujesz pisać do katalogu, a nie do pliku - to znaczy, że jest to zapis, którego nie możesz dodać. Tylko zgadnij.

0

Trzeba to wykorzystać:

$file=realpath('data'); 

Następnie trzeba użyć tego powyżej $file plików umieścić w treści i ostatni spróbować dać z podobnego typu pliku (filename.filetype).

file_put_contents($file,'fgdfgfg'); 
1

Więc wystarczy sprawdzić ilość wolnego miejsca w systemie plików w moim przypadku i wpisując w konsoli:
df -h System plików Rozmiar
Używane Dostępność Pojemność Przymocowane
/dev/da0s1f 4,3 g 4,0 g - 68m 102%/usr

zwolnić miejsce i funkcyjne file_put_contents pracuje po tej

Powiązane problemy