(PHP 4, PHP 5)
fileperms — 取得文件的權限
說明
int fileperms ( string$filename
)
取得文件的權限。
參數
filename
文件的路徑。
返回值
以數字模式返回文件的訪問權限。
Returns the file's permissions as a numeric mode.
Lower bits of this mode
are the same as the permissions expected by chmod(),
however on most platforms the return value will also include information on
the type of file given as filename
. The examples
below demonstrate how to test the return value for specific permissions and
file types on POSIX systems, including Linux and Mac OS X.
For local files, the specific return value is that of the st_mode member of the structure returned by the C library's stat() function. Exactly which bits are set can vary from platform to platform, and looking up your specific platform's documentation is recommended if parsing the non-permission bits of the return value is required.
范例
Example #1 以八進制的形式顯示文件的權限
<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>
以上例程會輸出:
1777 0644
Example #2 輸出全部權限
<?php
$perms = fileperms('/etc/passwd');
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>
以上例程會輸出:
-rw-r--r--
錯誤/異常
失敗時拋出E_WARNING
警告。
注釋
Note: 此函數的結果會被緩存。參見 clearstatcache() 以獲得更多細節。
Tip自 PHP 5.0.0 起, 此函數也用于某些 URL 包裝器。請參見 支持的協議和封裝協議以獲得支持 stat() 系列函數功能的包裝器列表。
參見
chmod() - 改變文件模式 is_readable() - 判斷給定文件名是否可讀 stat() - 給出文件的信息