2012-10-04 84 views
0

每個文件的大小,我知道捲曲會得到一個頁面的總下載大小,但我期待的下載大小分爲總圖像下載,總腳本下載大小,總的樣式尺寸下載等等等等捲曲 - 獲取從最初的捲曲請求

是什麼打算這樣做這樣的一般方式...我發現這個鏈接PHP: Remote file size without downloading file

,我想它有事情做與做一個for循環和捲曲得到大小由inital curl請求拉入的每個文件的內容。

讓我知道如果任何人有任何提示!

感謝

回答

0

使該功能:

<?php 
    getResourceSize($remoteFile /*link of the file*/) 
    { 
     $ch = curl_init($remoteFile); 
     curl_setopt($ch, CURLOPT_NOBODY, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_HEADER, true); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //not necessary unless the file redirects (like the PHP example we're using here) 
     $data = curl_exec($ch); 
     curl_close($ch); 
     if ($data === false) { 
     echo 'cURL failed'; 
     exit; 
     } 

     $contentLength = 'unknown'; 
     $status = 'unknown'; 
     if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) { 
     $status = (int)$matches[1]; 
     if($status == ('404' || '500') return 'error'; 
     } 
     if (preg_match('/Content-Length: (\d+)/', $data, $matches)) { 
     $contentLength = (int)$matches[1]; 
     return $contentLength; 
     } 
    } 
?> 

現在初始化總下載量爲:

$files = array 
[ 
    "http://...firstFile.ext", 
    "http://...secondFile.ext", 
    "http://...thirdFile.ext", 
    ... 
]; 

$totalDownloadSize = 0; 

foreach($file in $files) 
    $totalDownloadSize += GetResourceSize($file);