PHP: como obtener el tamaño de un fichero remoto
Si alguna vez necesitamos saber el tamaño de un fichero remoto (que no esta en nuestro propio servidor), podremos utilizar un par de sencillos métodos en php para averiguarlo
Hay varias formas de obtener el tamaño de un fichero remoto en php.
- Utilizando las cabeceras de respuesta del servidor mediante la función
get_headers()
- Utilizando la función curl_getinfo() del modulo cURL
Utilizando las cabeceras de respuesta del servidor
Otro método alternativo es obtener la respuesta del servidor a la petición http mediante la función get_headers()
. En el array que nos devuelve la función, podemos acceder al elemento content-length
que es el numero de bytes del fichero especificado:
function urlsize($url):int{ return array_change_key_case(get_headers($url,1))['content-length']; } echo urlsize('https://www.fernandezsansalvador.es/wp-content/uploads/2019/03/php-code.jpg');
Utilizando la función curl_getinfo() del modulo cURL
También podemos realizar una llamada a la función curl_getinfo()
en caso de tener instalado el modulo cURL. Si en la llamada le pasamos el parámetro CURLINFO_CONTENT_LENGTH_DOWNLOAD
, nos devolverá el tamaño del fichero desde las cabeceras de repuesta del servidor:
function retrieve_remote_file_size($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); $data = curl_exec($ch); $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); curl_close($ch); return $size; }
Deja una respuesta