2010-12-09 5 views
0

Wenn ich eine Datei öffnen, mit fopen($filename, 'w+') (das heißt, das Lesen und Schreiben), wird die Datei mit Berechtigungen wie folgt erstellt:PHP öffnet Datei mit zu streng von Berechtigungen

-rw-r--r-- 1 www-data www-data 0 2010-12-09 12:02 TransactionImport-7.txt 

Dann, wenn andere Prozesse versuchen, Öffnen Sie die Datei, sie können es nicht tun. Wie kann ich die Datei mit weniger strengen Berechtigungen öffnen?

Ich kann die Berechtigungen nicht ändern, nachdem ich die Datei schließe, weil andere Programme die Datei lesen müssen, während sie noch geschrieben wird. Wenn ich versuche, sie vorher mit zu ändern, macht es es so, dass mein Skript überhaupt nicht in die Datei schreiben kann.

+0

Sie sind die Ressource mit fclose ($ file_handle) zu schließen, wenn Sie sind fertig? – Jon

+0

Ja. Und weil ich nicht einfach "Ja" schreiben kann, weil der überholte Charakter von Stack Overflow minimal ist, schreibe ich hier mehr. –

Antwort

2

können Sie touch vor fopen verwenden mit w+

wie

touch($filename); 
chmod($filename, YOUR_PREFER_PERMISSION); 
fopen($filename, 'w+'); 

ODER

umask - http://www.php.net/manual/en/function.umask.php

+0

Ich habe das genau vorher versucht und es hat alles auf neue und verwirrende Art vermasselt. Der Grund erwies sich jedoch als indirekt zusammenhängend. Dies ist letztlich, was es funktioniert hat. –

+0

wird toll sein, wenn Sie postet was genau das Problem lösen ..? – ajreal

+0

Ich hatte ein anderes Skript, das zufällig zur gleichen Zeit lief und es überschrieb ständig meine Datei. –