(PHP 4, PHP 5, PHP 7, PHP 8)
fstat — Lee las informaciones sobre un fichero a partir de un puntero de fichero
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.
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.
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 )
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.
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)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.