2012-08-15 272 views
1

我有寫一些行到CSV文件PHP腳本:文件權限的fopen - PHP

$fp = fopen($csv, 'w'); 

我使用模式「W」,這樣它會如果它創建的文件不存在,但是即使我給整個/ var/www/html /目錄提供了777(不是一個好主意但適合測試),該文件將自動被授予權限。

我該如何寫入文件並事先授予它權限?還是有更好的方法來給寫權限?

+0

你有麻煩寫入文件?由於所有者具有讀/寫權限,所以644應該可以寫入。 – 2012-08-15 14:18:24

+0

@MattK它似乎在'Apache'的所有者下創建csv,該目錄與目錄中所有其他文件的所有者不同 – AlxVallejo 2012-08-16 20:53:18

回答

3

之前手並設置權限創建文件:

touch('/file/path/here'); 
chmod('/file/path/here', 0775); 
fopen('/file/path/here', 'w'); 

但是,這不應該是一個問題。如果PHP/Apache用戶使用fopen創建文件,則他們有權寫入該文件。

+0

所有者似乎更改爲'apache'。我不想將所有者硬編碼到PHP中,因爲該域可能會更改。 – AlxVallejo 2012-08-16 21:11:04

+0

您是否遇到過上述代碼的不同行爲? – 2012-08-16 21:14:00

+0

是的,這會做。謝謝! – AlxVallejo 2012-08-16 21:28:56