Quiero obtener el tamaño de un archivo remoto y he encpntrado esta función php que funciona...
<?php
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;
}
echo retrieve_remote_file_size("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
?>
... me devuelve el tamaño del logo en bites 5969.
Si a la url que quiero llegar le quiero poner los comodines /../ tengo que indicar a curl "--path-as-is" para que no anule los comodines.
El problema es que no se donde colocar "--path-as-is" en la función php.
Se agrega igual como lo andas haciendo:
<?php
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);
curl_setopt($ch, CURLOPT_PATH_AS_IS, TRUE);
$data = curl_exec($ch);
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
return $size;
}
echo retrieve_remote_file_size("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
?>
Referencia: https://www.php.net/manual/es/function.curl-setopt.php
Importante: CURLOPT_PATH_AS_IS true para no manejar secuencias de puntos. Añadida en cURL 7.42.0. Disponible desde PHP 7.0.7.
Gracias, funciona perfecto.
Hola, talves te salga mas facil usar file_get_contents() en ves de curl, recuerda que no todos los hosting tienen instalado el complemento de curl para php, este no es nativo.
Saludos.
Gracias por la sugerencia pero a veces utilizo los comodines \..\ en curl y otras aplicaciones no los gestionan bien.