为什么在php_curl中用`CURLINFO_CONTENT_LENGTH_DOWNLOAD`获取不到pdf文件的长度?

Why can't get the length of the pdf file with `CURLINFO_CONTENT_LENGTH_DOWNLOAD` in php_curl?

我必须在 PHP 中使用 curl 获取远程文件的文件大小 该文件托管在 Dropbox 上,将通过直接 link 下载 下面是我写的代码

$szUrl='https://www.dl.dropboxusercontent.com/s/8ol4o753smure2o/Holy_Quran_in_Turkish.pdf';
    $curl = curl_init();
    curl_exec($curl);


    curl_setopt($curl, CURLOPT_URL, $szUrl);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_NOBODY, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);


   $size = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
  echo $size;

curl_close($curl);

代码输出为-1,如何使用php_curl正确获取iso文件的长度?

您必须在执行之前设置 curl 选项:

<?php

   $szUrl='https://www.dl.dropboxusercontent.com/s/8ol4o753smure2o/Holy_Quran_in_Turkish.pdf';
   $curl = curl_init();
   curl_setopt($curl, CURLOPT_URL, $szUrl);
   curl_setopt($curl, CURLOPT_HEADER, 1);
   curl_setopt($curl, CURLOPT_NOBODY, 1);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
   curl_exec($curl);
   $size = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
   echo $size;
   curl_close($curl);