(PHP 4, PHP 5, PHP 7)

fstatGets information about a file using an open file pointer


array fstat ( resource $handle )

Gathers the statistics of the file opened by the file pointer handle. This function is similar to the stat() function except that it operates on an open file pointer instead of a filename.



일반적으로 fopen()으로 생성하는 파일 시스템 포인터 resource.


Returns an array with the statistics of the file; the format of the array is described in detail on the stat() manual page.


Example #1 fstat() example


// open a file
$fp fopen("/etc/passwd""r");

// gather statistics
$fstat fstat($fp);

// close the file

// print only the associative part


위 예제의 출력 예시:

    [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


Note: 이 함수는 원격 파일을 다루지 못합니다. 파일은 서버 파일시스템을 통해서 사용 가능해야만 합니다.

add a note add a note

User Contributed Notes 2 notes

tom at bitworks dot de
5 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.
broom at alturnanetworks dot com
14 years ago
Another ftp_get_contents() approach, using a temperary stream handler. Returns file contents of remote file as string.

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);

fread($tempHandle, $fstats['size']);

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