fstat

(PHP 4, PHP 5, PHP 7)

fstatPobiera informacje o pliku używając otwartego wskaźnika pliku

Opis

fstat ( resource $uchwyt ) : array

Zbiera statystyki otwartego pliku przez wskaźnik pliku uchwyt. Ta funkcja jest podobna do funkcji stat() z wyjątkiem tego, że operuje na otwartym wskaźniku pliku zamiast na nazwię pliku.

Zwraca tablicę ze statystykami pliku; format tablicy szczegółowo jest opisany na stronie stat() podręcznika.

Przykład #1 fstat() przykład

<?php

// otwarcie pliku
$fp fopen("/etc/passwd""r");

// zebranie statystyk
$fstat fstat($fp);

// zamknięcie pliku
fclose($fp);

// wyświetlenie tylko części asocjacyjnej
print_r(array_slice($fstat13));

?>

Powyższy przykład wyświetli coś podobnego do:

Array
(
  [dev] => 771
  [ino] => 488704
  [mode] => 33188
  [nlink] => 1
  [uid] => 0
  [gid] => 0
  [rdev] => 0
  [size] => 1114
  [atime] => 1061067181
  [mtime] => 1056136526
  [ctime] => 1056136526
  [blksize] => 4096
  [blocks] => 8
)

Informacja: Ta funkcja nie będzie działać na zdalnych plikach, ponieważ przetwarzany plik musi być dostępny w systemie plików serwera.

add a note add a note

User Contributed Notes 2 notes

up
0
tom at bitworks dot de
6 years ago
Remember atime will not be updated by simple read access to the file unless you take care for that in the mounting parameters of your filesystem. 

Instead of atime, mtime will be delivered. But mtime only will be updated, if the contents of the file has changed.

Due to this behavior take care in your Session-System. Using session_start() will not be sufficiant to keep your sessions alive. You should write into the Session, e. g. : 

$_SESSION = time(); 

That retriggers your mtime and atime, even if the mounting parameter for atime is set to "noatime" or is missing, dependent of the used file System.
up
0
broom at alturnanetworks dot com
15 years ago
Another ftp_get_contents() approach, using a temperary stream handler. Returns file contents of remote file as string.

<?php
function ftp_get_contents ($conn_id, $remote_filename) {
   
//Create temp handler:
   
$tempHandle = fopen('php://temp', 'r+');

   
//Get file from FTP assuming that it exists:
   
ftp_fget($conn_id, $tempHandle, $remote_filename, FTP_ASCII, 0));

   
//Getting detailed stats to check filesize:
   
$fstats = fstat($tempHandle);

    return
fread($tempHandle, $fstats['size']);
}
?>

(It is recommended to add some error handling)
To Top