nasıl grup yazma izinlerine sahip file_put_contents ile bir dosya oluşturabilirsiniz?

3 Cevap php

I file_put_contents bir dosya oluşturmak için kullanıyorum. Benim php süreç dizinine yazma izinlerine sahip bir grup çalışıyor. file_put_contents çağrıldığında, ancak, çıkan dosya (sadece iyi ilk defa yaratır) grubu yazma izinlerine sahip değil. Bu benim dosyanın üzerine çalışırsanız çünkü izinleri eksikliği başarısız olduğu anlamına gelir.

Grup yazma izinleri ile dosya oluşturmak için bir yolu var mı?

3 Cevap

Ne ayarı denemek için umask before calling file_put_contents olabilir: o oluşturulduktan zaman dosyaya verilecek varsayılan izinleri değişecektir.

(Belgelere göre, daha iyi) diğer yolu dosyası oluşturulduktan hemen sonra, chmod izinlerini değiştirmek için kullanmaktır.


Well, after re-reading the question, I hope I understood it well...

Örnek 1 (sahibi ve grup için okuma-yazma, ve diğerleri için okuma dosya izinlerini ayarlamak):

file_put_contents($filename, $data);
chmod($filename, 0664);

Örnek 2 (diğer izinleri değiştirmeden grup tarafından dosyası yazılabilir):

file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 16);

Örnek 3 (diğer izinleri değiştirmeden herkes tarafından dosyası yazılabilir):

file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 128 + 16 + 2);

128, 16, 2, sırasıyla sahibi, grup ve diğer için yazılabilir içindir.

Dosyayı açın ve içeriği üzerinde yazmak için o dosyaya yazma izni gerekiyor. Bu ayrımın anlaşılması önemlidir. Tüm dosya üzerine yazmak için aslında yazma izinleri gerekir directory.

chmod() bu konuda açık olmak istiyorum dosya ve / veya dizin üzerinde uygun olanı belirlemek için kullanın.