fstat
(PHP 4, PHP 5, PHP 7, PHP 8)
fstat — オープンしたファイルポインタからファイルに関する情報を取得する
説明
ファイルポインタstream
によりオープンされたファイルの統計情報を取得します。
この関数は関数stat()に似ていますが、
ファイル名の代わりにオープンされたファイルポインタを指定するところが異なります。
例
例1 fstat() の例
<?php
// ファイルをオープンする
$fp = fopen("/etc/passwd", "r");
// 統計情報を収集する
$fstat = fstat($fp);
// ファイルをクローズする
fclose($fp);
// 連想配列部のみ表示する
print_r(array_slice($fstat, 13));
?>
上の例の出力は、 たとえば以下のようになります。
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 )
注意
注意: この関数では、 リモートファイル を 使用することはできません。これは、処理されるファイルがサーバーの ファイルシステムによりアクセスできる必要があるためです。
+add a note
User Contributed Notes 2 notes
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)
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.