PHP Conference Nagoya 2025

fstat

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

fstatRestituisce le informazioni riguardanti un file attraverso un puntatore al file aperto

Descrizione

fstat(resource $handle): array

Restituisce le statistiche del file aperto dal puntatore handle. Questa funzione è simile a stat() eccetto per il fatto che opera su un puntatore a file aperto invece che su un nome di file.

Restituisce un vettore con le statistiche del file con il formato del vettore è descritto nella pagina di stat().

Example #1 Esempio di uso di fstat()

<?php

// apertura del file
$fp = fopen("/etc/passwd", "r");

// raccolta delle informazioni
$fstat = fstat($fp);

// chiusura del file
fclose($fp);

// scrittura della sola parte associativa
print_r(array_slice($fstat, 13));

?>

l'esempio visualizzerà :

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
)

Nota: I risultati di questa funzione saranno memorizzati. Vedere clearstatcache() per maggiori dettagli.

Nota: Questa funzione non opererà su file remoti perché il file che deve essere esaminato deve essere accessibile attraverso il filesysmte del server.

add a note

User Contributed Notes 2 notes

up
1
broom at alturnanetworks dot com
16 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)
up
0
tom at bitworks dot de
7 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.
To Top