(PHP 4, PHP 5, PHP 7)
fileperms — 取锟斤拷锟侥硷拷锟斤拷权锟斤拷
$filename
) : int取锟斤拷锟侥硷拷锟斤拷权锟睫★拷
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: 锟剿猴拷锟斤拷锟侥斤拷锟斤拷岜伙拷锟斤拷妗o拷渭锟� clearstatcache() 锟皆伙拷酶锟斤拷锟较革拷凇锟�
锟斤拷 PHP 5.0.0 锟斤拷, 锟剿猴拷锟斤拷也锟斤拷锟斤拷某些 URL 锟斤拷装锟斤拷锟斤拷锟斤拷渭锟� 支锟街碉拷协锟斤拷头锟阶靶拷锟�锟皆伙拷锟街э拷锟� stat() 系锟叫猴拷锟斤拷锟斤拷锟杰的帮拷装锟斤拷锟叫憋拷