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

Un puntero del sistema de archivos de tipo resource que es habitualmente creado utilizando la función 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));

?>

Resultado del ejemplo anterior es 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 funciona con los archivos remotos, ya que el archivo examinado debe ser accesible en el sistema de archivos del servidor.

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