url en funcion php

Iniciado por Orni1, 7 Abril 2021, 14:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Orni1

Quiero obtener el tamaño de un archivo remoto y he encpntrado esta función php que funciona...

Código (php) [Seleccionar]
<?php
function retrieve_remote_file_size($url){
     
$ch curl_init($url);

     
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
     
curl_setopt($chCURLOPT_HEADERTRUE);
     
curl_setopt($chCURLOPT_NOBODYTRUE);

     
$data curl_exec($ch);
     
$size curl_getinfo($chCURLINFO_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.








EdePC

#1
Se agrega igual como lo andas haciendo:

Código (php-brief,8) [Seleccionar]
<?php
function retrieve_remote_file_size($url){
  
$ch curl_init($url);

  
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
  
curl_setopt($chCURLOPT_HEADERTRUE);
  
curl_setopt($chCURLOPT_NOBODYTRUE);
  
curl_setopt($chCURLOPT_PATH_AS_ISTRUE);

  
$data curl_exec($ch);
  
$size curl_getinfo($chCURLINFO_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.

Orni1

Gracias, funciona perfecto.

WHK

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.

Orni1

Gracias por la sugerencia pero a veces utilizo los comodines \..\ en curl y otras aplicaciones no los gestionan bien.