array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.fileperms.php', 1 => 'fileperms', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'Dosya Sistemi İşlevleri', ), 'prev' => array ( 0 => 'function.fileowner.php', 1 => 'fileowner', ), 'next' => array ( 0 => 'function.filesize.php', 1 => 'filesize', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/filesystem/functions/fileperms.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
fileperms — Dosya izinlerini döndürür
dosyaismi
Dosya yolu.
Dosyanın izinlerini sayısal kip olarak döndürür. Bu kipin daha düşük
bitleri, chmod() tarafından beklenen izinlerle aynıdır,
ancak çoğu platformda, dönüş değeri dosyaismi
olarak verilen dosya türü hakkında bilgi de içerir. Aşağıdaki örnekler,
Linux ve macOS dahil olmak üzere POSIX sistemlerinde belirli izinler ve
dosya türleri için dönüş değerinin nasıl sınanacağını göstermektedir.
Yerel dosyalara özgü dönüş değeri, C kütüphanesinin
stat() işlevi tarafından döndürülen yapının
st_mode
üyesinin değeridir. Tam olarak hangi bitlerin
atanacağı platformdan platforma değişebilir ve dönüş değerinin izin
verilmeyen bitlerinin ayrıştırılması gerekiyorsa özel platformunuzun
belgelerine bakmanız önerilir.
Başarısızlık durumunda false
döner.
Başarısızlık durumunda bir
E_WARNING
çıktılanır.
Örnek 1 - İzinlerin sekizlik değer olarak gösterilmesi
<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>
Yukarıdaki örneğin çıktısı:
1777 0644
Örnek 2 - Tüm izinlerin gösterilmesi
<?php
$perms = fileperms('/etc/passwd');
switch ($perms & 0xF000) {
case 0xC000: // soket
$info = 's';
break;
case 0xA000: // Sembolik bağ
$info = 'l';
break;
case 0x8000: // Sıradan dosya
$info = 'r';
break;
case 0x6000: // Blok aygıtı
$info = 'b';
break;
case 0x4000: // Dizin
$info = 'd';
break;
case 0x2000: // Karakter aygıtı
$info = 'c';
break;
case 0x1000: // FIFO boru
$info = 'p';
break;
default: // Bilinmiyor
$info = 'u';
}
// Kullanıcı
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Grup
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// Herkes
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>
Yukarıdaki örneğin çıktısı:
-rw-r--r--
Bilginize: Bu işlevin sonuçları önbelleğe kaydedilir. Daha ayrıntılı bilgi clearstatcache() işlevinde bulunabilir.
PHP 5.0.0 sürümünden itibaren bu işlev bazı URL sarmalayıcıları ile kullanılabilmektedir. stat() ailesini destekleyen sarmalayıcıların listesi Desteklenen Protokoller ve Sarmalayıcılar başlığı altında bulunabilir.