Remote_Filesize - Connaitre le poids d’un fichier distant - Utile en Php 4.x
admin janvier 8th, 2009
Voici une fonction qui permet de connaitre le poids “d’un fichier distant” pour ceux qui travaillent sur des scripts en php4 et qui ne disposent pas de la fonction get_headers disponible en php5.x.
function Remote_Filesize($url) { $sch = parse_url($url, PHP_URL_SCHEME); if (($sch != "http") && ($sch != "https") && ($sch != "ftp") && ($sch != "ftps")) { return false; } if (($sch == "http") || ($sch == "https")) { $headers = @get_headers($url, 1); if (!is_array($headers)){$headers=array();} if ((!array_key_exists("Content-Length", $headers))) { return false; } return $headers["Content-Length"]; } if (($sch == "ftp") || ($sch == "ftps")) { $server = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); $path = parse_url($url, PHP_URL_PATH); $user = parse_url($url, PHP_URL_USER); $pass = parse_url($url, PHP_URL_PASS); if ((!$server) || (!$path)) { return false; } if (!$port) { $port = 21; } if (!$user) { $user = "anonymous"; } if (!$pass) { $pass = "phpos@"; } switch ($sch) { case "ftp": $ftpid = ftp_connect($server, $port); break; case "ftps": $ftpid = ftp_ssl_connect($server, $port); break; } if (!$ftpid) { return false; } $login = ftp_login($ftpid, $user, $pass); if (!$login) { return false; } $ftpsize = ftp_size($ftpid, $path); ftp_close($ftpid); if ($ftpsize == -1) { return false; } return $ftpsize; } }
- Du Php
- Comments(1)
Et filesize() ?