fstat

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

fstatLee las informaciones sobre un fichero a partir de un puntero de fichero

Descripción

fstat(resource $stream): array|false

Recopila las informaciones sobre el fichero del cual se conoce el puntero stream. fstat() es similar a la función stat(), excepto que utiliza un puntero de fichero, en lugar de un nombre de fichero.

Parámetros

stream

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

Valores devueltos

Devuelve un array que contiene las estadísticas para el fichero; el formato de este array se describe en detalle en la página de documentación de la función stat(). Devuelve false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con fstat()

<?php

// abre un fichero
$fp = fopen("/etc/passwd", "r");

// lee las informaciones
$fstat = fstat($fp);

// cierra el fichero
fclose($fp);

// muestra el resultado
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
2
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
8 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