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)fstat
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
fstat
Референца за `function.fstat.php` со подобрена типографија и навигација.
fstat
(PHP 4, PHP 5, PHP 7, PHP 8)
fstat — Добива информации за датотека преку отворена датотека покажувач
= NULL
Ги собира статистиките на датотеката отворена од покажувачот на датотеката stream. Оваа функција е слична на
stat() функцијата освен што работи на отворена датотека покажувач наместо на име на датотека.
Параметри
Вратени вредности
Враќа низа со статистиките на датотеката; форматот на низата е опишан детално на stat() страницата во прирачникот. Враќа false при неуспех.
Примери
Пример #1 fstat() example
<?php
// open a file
$fp = fopen("/etc/passwd", "r");
// gather statistics
$fstat = fstat($fp);
// close the file
fclose($fp);
// print only the associative part
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
)
Белешки
Забелешка: Оваа функција нема да работи на Оваа опција овозможува fopen обвивки свесни за URL-и кои овозможуваат пристап до URL објекти како датотеки. Стандардни обвивки се обезбедени за пристап до бидејќи датотеката што треба да се испита мора да биде достапна преку датотечниот систем на серверот.
Белешки од корисници 2 забелешки
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.