Tendrías que mirar el
Content-Length que te devuelve el server en los headers.
<?php
/**
* Devolver Content-Length de una url.
* @param [string] $url - URL para request.
* @return [integer] - Tamaño en bytes.
*/
function remoteSize($url){
return (isset($head['Content-Length']) ?
(int
)$head['Content-Length'] : null); }
/* ejemplo - (retorna: 1044381696) */
echo remoteSize('http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso');
?>
Aunque supongo que te vendría mejor utilizar curl o algo parecido porque get_headers() esta algo limitado por defecto y algunos servidores te podrían negar la consulta por no tener user-agent por ejemplo.
La idea es obtener los headers y cortar la conexión sin recibir el body.
Saludos
Segun la documentacion el metodo por default para get_headers es GET y en este caso lo recomendado seria simplemente usar HEAD. Tienes que usar esto, antes de get_headers();
'method' => 'HEAD'
)
)
);
Tambien lo puedes hacer con curl:
<?php
function getContentLength($url){
$contentLength = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD
); return $contentLength;
}
echo getContentLength('http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso');
?>