2017-09-23 100 views
-2

我不知道爲什麼,但PHP在創建文件時,例如使用file_put_contents()等內置函數,它默認文件權限爲644PHP - 默認文件權限爲644

我怎樣才能讓它默認爲777呢?我需要這樣做才能在稍後使用我的FTP客戶端編輯或刪除它們。

+1

777是一個*糟糕的*想法。如果您的FTP客戶端需要777權限,請使用不同的權限。 – FluffyKitten

+0

但無論如何,我怎麼能做到這一點? –

回答

0

您可以使用chmod(filename,mode)更改文件權限。一個小測試,看看它是否工作,重要的是使用clearstatcache()從PHP獲得更新的答案:

$perms=fileperms("dummy.txt"); 
echo 'start : ' . substr(sprintf('%o', $perms), -4); 
echo '<br />'; 

$success=chmod("dummy.txt", 0777); 
var_dump($success); 
echo '<br />'; 

clearstatcache(); // to make sure we get an updated answer 

$perms_chg=fileperms("dummy.txt"); 
echo 'file permissions are changed to : ' . substr(sprintf('%o', $perms_chg), -4) . ' from : ' . substr(sprintf('%o', $perms), -4); 
echo '<br />'; 

$time=time(); 
file_put_contents("dummy.txt", $time); 

$perms=fileperms("dummy.txt"); 
echo 'file permissions after writing data to file : ' . substr(sprintf('%o', $perms), -4); 

if($perms === $perms_chg) 
{ 
    echo '<br />'; 
    echo 'file_put_contents has NOT changed file permissions'; 
} 
else 
{ 
    echo '<br />'; 
    echo 'file_put_contents HAS changed permissions to some default setting'; 
}