php chmod 函式 引數mode的含義

2022-09-06 02:06:10 字數 1802 閱讀 4734

php文件:

boolchmod( string filename, int mode)

嘗試將 filename

所指定檔案的模式改成 mode

所給定的。

注意 mode

不會被自動當成八進位制數值,而且也不能用字串(例如 "g+w")。要確保正確操作,需要給 mode

前面加上 0:

<?php

chmod

("/somedir/somefile"

, 755

);   

// 十進位制數,可能不對

chmod

("/somedir/somefile"

, "u+rwx,go+rx"

); // 字串,不對

chmod

("/somedir/somefile"

, 0755

);  

// 八進位制數,正確的 mode 值

?>

mode

引數包含三個八進位制數按順序分別指定了所有者、所有者所在的組以及所有人的訪問限制。每一部分都可以通過加入所需的許可權來計算出所要的許可權。數字 1 表示使檔案可執行,數字 2 表示使檔案可寫,數字 4 表示使檔案可讀。加入這些數字來制定所需要的許可權。

chmod是php中乙個函式,不過,似乎在程式中還比較少用到

更多的是在ftp上使用。

在ftp上,可以看到,其實chmod只有三個組

[說明一下,此函式用8進製代數字表許可權]

三個組按順序分別是:所有權,組,公共

比如,764,意思是所有權7,組6,公共4,代表三組的許可權

而各組的數字是這樣的演算法:

7=1+2+4=1*2^0+1*2^1+1*2^2

每組的屬性,是1 2 4的互相組合而成

下面是三個數字代表的許可權

讀取[read]:4

寫入[write]:2

執行[execute]:1

現在大家知道,乙個字代表的許可權了吧?

當然,也會有出現 0的時候,0,當然是沒任何許可權了

777不用說了,全權。

其實,現在看來,為使程式安全一點,設定屬性,應該766就夠了

一些空間要求使用者要把cgi程式許可權設定為755

因為上傳後的預設許可權是沒這麼高的

僅僅是644,顯然,其中是不包括執行權的,所以每組都必須 加上1,為755

在程式中使用chmod的時候,建議在前面補0,如:chmod(/"filename/",0777) ;

溫習下各中進製的轉換:

2進製只有0、1兩個數,遇到2就進1,比如二進位制裡的10就等於10進製裡的2。8進製就是遇8進一,16進製制就是遇16進一。

2進製到10進製,個位是2的0次冪,十位是2的1次冪,以此類推,最後結果相加就是所要的10進製數,例

如:1010110=64*1+32*0+16*1+8*0+4*1+2*1+1*0=86。同樣的方法,8進製、十六進製制,就是將2的幾次冪換成8的幾

次冪或16的幾次冪。

10進製到2進製,採用短除法,比如25換成二進位制數,首先用25除以2,商12餘1,先不管餘數,繼續除則有以下結果,商6餘0,商3餘0,商1餘1,商0餘1。這個二進位制數就是倒著書寫這些餘數,即11001。8進製、16進製制方法雷同,不再敘述。

最後,給出個進製數的組成:

2進製:0,1

8進製:0,1,2,3,4,5,6,7

10進製:0,1,2,3,4,5,6,7,8,9

16進製制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

PHP chmod 函式改變檔案模式

chmod 函式改變檔案模式。如果成功則返回 true,否則返回 false。chmod file,mode 引數 描述file 必需。規定要檢查的檔案。mode 可選。規定新的許可權。mode 引數由 4 個數字組成 可能的值 如需設定多個許可權,請對下面的數字進行總計 所有者可讀寫,其他人沒有任...

mod函式詳解

我們知道,mod函式是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號 mod 負,正 正 mod 正,負 負...

mod函式用法

我們知道,例如 9 3,9是被除數,3為除數.mod函式 是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個 負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號...