PHP 8.3.4 Released!

fstat

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

fstatObtiene información acerca de un archivo usando un puntero al archivo abierto

Descripción

fstat(resource $handle): array

Reúne las estadísticas de un archivo abierto por el puntero al archivo referenciado por handle. Esta función es similar a la función stat() excepto que opera sobre un puntero a un archivo en vez de sobre un nombre de archivo.

Parámetros

handle

Resource que apunta a un fichero del sitema que normalmente es creado usando fopen().

Valores devueltos

Devuelve un matriz con las estadísticas del archivo; el formato de la matriz está descrito en la página del manual de stat().

Ejemplos

Ejemplo #1 Ejemplo de fstat()

<?php

// abrir un archivo
$fp = fopen("/etc/passwd", "r");

// reunir estadísticas
$fstat = fstat($fp);

// cerrar el archivo
fclose($fp);

// imprimir sólo la parte asociativa
print_r(array_slice($fstat, 13));

?>

El resultado del ejemplo sería algo similar a:

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
)

Notas

Nota: Esta función no funcionará en ficheros remotos ya que el fichero debe ser accesible vía el sistema de ficheros del servidor para poder ser examinado.

add a note

User Contributed Notes 2 notes

up
1
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)
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.
To Top