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 — Lit les informations sur un fichier à partir d'un pointeur de fichier
Description
array fstat
( resource $handle
)
Rassemble les informations sur le fichier dont on connaît le pointeur handle . fstat() est similaire à la fonction stat(), hormis le fait qu'elle utilise un pointeur de fichier, au lieu d'un nom de fichier.
Liste de paramètres
Valeurs de retour
Retourne un tableau contenant les statistiques pour le fichier ; le format de ce tableau est décrit en détail sur la page de documentation de la fonction stat().
Exemples
Exemple #1 Exemple avec fstat()
<?php
// ouvre un fichier
$fp = fopen("/etc/passwd", "r");
// lit des informations
$fstat = fstat($fp);
// ferme le fichier
fclose($fp);
// affiche le résultat
print_r(array_slice($fstat, 13));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
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 )
Notes
Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.
fstat
broom at alturnanetworks dot com
03-Oct-2008 12:21
03-Oct-2008 12:21
mordae at mordae dot net
29-Jan-2006 04:12
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.
sheran at comtrust dot co dot ae
22-Feb-2001 02:14
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
