stat

(PHP 4, PHP 5, PHP 7, PHP 8)

statBir dosya hakkında bilgi döndürür

Açıklama

stat(string $dosyaismi): array|false

dosyaismi ile belirtilen dosyanın istatistiklerini toplar. Eğer dosyaismi bir sembolik bağ ise istatistikler bağ dosyasından değil hedefinden toplanır. PHP 7.4.0 öncesinde, Windows üzerinde, bu durumda, NTS size, atime, mtime ve ctime istatistiklerini sembolik bağdan oluştururdu.

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.

Sürüm Bilgisi

Sürüm: Açıklama
7.4.0 Windows üzerinde, aygıt numarası artık dosyayı içeren birimin seri numarası oldu. Evvelce dosya ile ilgili tanımlayıcının düğüm numarası idi.
7.4.0 Sembolik bağların size, atime, mtime ve ctime istatistikleri olarak artık hedefin istatistikleri kullanılıyor. Evvelce, bunları NTS sembolik bağdan oluştururdu.

Ö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