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 4, PHP 5)
fstat — Gets information about a file using an open file pointer
Descrierea
Gathers the statistics of the file opened by the file pointer handle . This function is similar to the stat() function except that it operates on an open file pointer instead of a filename.
Parametri
- handle
-
O resursă de tip indicator în sistemul de fişiere care este în mod tipic creată utilizând fopen().
Valorile întroarse
Returns an array with the statistics of the file; the format of the array is described in detail on the stat() manual page.
Exemple
Example #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));
?>
Exemplul de mai sus va afişa ceva similar cu:
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 )
Note
Notă: Această funcţie nu va lucra cu fişiere la distanţă, deoarece fişierul care trebuie să fie examinat trebuie să fie accesibil prin intermediul sistemului de fişiere al serverului.
fstat
03-Oct-2008 12:21
29-Jan-2006 04:12
dom at dodgydom dot com wrote:
Best way i found was to open the url into $data and make a temporary file with the contents of $data then get the fstats on the temporary file :).
OMG why? The only thing that will remain is the file size. You also download up to 1G file, which probably is not what you want.
To get size use PHP's function filesize() with URL wrappers or ask yourself via HTTP.
22-Feb-2001 02:14
On Windows NT the typical array element names for the fstat function are:
dev
ino
mode
nlink
uid
gid
size
atime
mtime
ctime
