stat
(PHP 4, PHP 5, PHP 7, PHP 8)
stat — Bir dosya hakkında bilgi döndürür
Açıklama
lstat(), sembolik bağların durumunu döndürmesi dışında
stat() işlevine eşdeğerdir.
Bağımsız Değişkenler
-
dosyaismi
-
Dosyanın yolu.
Dönen Değerler
stat() and fstat() sonuç
biçemi
İndis |
Anahtar |
Açıklama |
0 |
dev |
aygıt numarası *** |
1 |
ino |
dosya düğümü numarası **** |
2 |
mode |
dosya düğümü koruma kipi ***** |
3 |
nlink |
bağ sayısı |
4 |
uid |
sahibinin kullanıcı kimliği * |
5 |
gid |
sahibinin grup kimliği * |
6 |
rdev |
dosya düğümü aygıtı ise aygıt türü |
7 |
size |
bayt sayısı |
8 |
atime |
son erişim zamanı (Unix zaman damgası) |
9 |
mtime |
son değişiklik zamanı (Unix zaman damgası) |
10 |
ctime |
dosya düğümü son değişiklik zamanı (Unix zaman damgası) |
11 |
blksize |
dosya sisteminin G/Ç blok boyu ** |
12 |
blocks |
ayrılmış 512 baytlık blokların sayısı ** |
* Windows üzerinde daima 0
'dır.
** Sadece st_blksize türünü destekleyen sistemlerde geçerlidir;
diğer sistemlerde (Windows gibi) -1
döner.
*** PHP 7.4.0 öncesinde, Windows üzerinde, bu dosyayı içeren birimin 64
bitlik işaretsiz bir tam sayı olarak seri numarasıdır,
bu nedenle taşabilir. Önceden, sürücü harfinin sayısal karşılığıydı
(örneğin, C: sürücüsü stat() için 2
ve lstat() için 0
idi).
**** PHP 7.4.0 öncesinde, Windows üzerinde, bu, 64 bitlik
işaretsiz bir tam sayı olarak dosyayla ilişkili
tanımlayıcıdır, bu nedenle taşabilir. Önceden her zaman
0
idi.
***** Windows'ta, yazılabilir izin biti, salt-okunur yapılır ve tüm
kullanıcılar, grup ve sahip için aynı değer kullanılır.
is_writable() işlevinin aksine ACL dikkate alınmaz.
Çeşitli işlevler tarafından okunan bilgileri içeren kip
değeri. Sekizlik olarak yazıldığında, sağdan başlayarak, ilk üç hane
chmod() tarafından döndürülür. Sonraki basamak PHP
tarafından yok sayılır. Sonraki iki hane dosya türünü gösterir:
kip
dosya türleri
Sekizlik kip |
Anlamı |
0140000 |
soket |
0120000 |
bağ |
0100000 |
normal dosya |
0060000 |
blok aygıtı |
0040000 |
dizin |
0020000 |
karakter aygıtı |
0010000 |
fifo |
Dolayısıyla, örneğin, normal bir dosyanın kipi
0100644
iken dizin için
0040755
olur.
Hata durumunda, stat() false
döndürür.
Bilginize:
PHP'nin tamsayı türü, işaretli tamsayı türü olduğundan 32 bitlik
tamsayıların kullanıldığı sistemlerde bazı dosya sistemi işlevleri
2GB'tan büyük dosyalarda beklenmedik sonuçlar verebilir.
Hatalar/İstisnalar
Başarısızlık durumunda bir E_WARNING
çıktılanır.
Örnekler
Örnek 1 - stat() örneği
<?php
/* Dosya durumunu alalım */
$stat = stat('C:\php\php.exe');
/*
* Dosya erişim zamanını basalım.
* Bu, fileatime() çağrısına eşdeğerdir.
*/
echo 'Erişim zamanı: ' . $stat['atime'];
/*
* Dosya değişiklik zamanını basalım.
* Bu, filemtime() çağrısına eşdeğerdir.
*/
echo 'Değişiklik zamanı: ' . $stat['mtime'];
/* Aygıt numarasını basalım */
echo 'Aygıt numarası: ' . $stat['dev'];
Örnek 2 - stat() bilgisinin touch()
ile birlikte kullanımı
<?php
/* Dosya durumunu alalım */
$stat = stat('C:\php\php.exe');
/* Bilgiyi alırken başarısız olduk mu? */
if(!$stat) {
echo 'Stat çağrısı başarısız oldu...';
} else {
/*
* Mevcut erişim zamanı 1 hafta öncesi olsun
*/
$atime = $stat['atime'] + 604800;
/* Dosyaya dokunalım */
if (!touch('some_file.txt', time(), $atime)) {
echo 'Dosyaya erişilemedi...';
} else {
echo 'Dosyaya başarıyla erişildi...';
}
}
?>
Notlar
Bilginize:
Zaman çözünürlüğünün dosya
sistemine göre farklı olabileceğini unutmayın.
Bilginize:
Bu işlevin sonuçları önbelleğe kaydedilir. Daha ayrıntılı bilgi
clearstatcache() işlevinde bulunabilir.
İpucu
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.
Ayrıca Bakınız
- lstat() - Bir dosya veya sembolik bağ hakkında bilgi verir
- fstat() - Bir açık dosya tanıtıcısı kullanarak bir dosya hakkında bilgi
döndürür
- filemtime() - Dosyanın değişiklik zamanını döndürür
- filegroup() - Dosyanın sahibi olan grubu döndürür
- SplFileInfo