ConFoo 2025

fstat

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

fstatLê informações sobre um arquivo usando um ponteiro de arquivo aberto

Descrição

fstat(resource $stream): array|false

Obtêm estatísticas do arquivo aberto pelo ponteiro de arquivos stream. Esta função é similar à função stat() exceto que ela opera em um ponteiro de arquivo aberto ao invés de um nome de arquivo.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

Valor Retornado

Retorna um array com as estatísticas de um arquivo. O formato do array é descrito em detalhes na página do manual sobre stat(). Returns false on failure.

Exemplos

Exemplo #1 Exemplo fstat()

<?php

// abre um arquivo
$fp = fopen("/etc/passwd", "r");

// colhe as estatísticas
$fstat = fstat($fp);

// fecha o arquivo
fclose($fp);

// imprime somente a parte de índices associativos
print_r(array_slice($fstat, 13));

?>

O exemplo acima produzirá algo semelhante 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 função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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