2016-04-04 24 views
1

kullanarak indirme için gerekli süreyi yakalama:Terminalden aşağıdaki komutu çalıştırırsanız wget

wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" WEBSITEURL.COM -O TestFile.html 

Ben WEBSITEURL.COM adresindeki sayfanın içeriği ile bir dosya olsun. Dosya istenirse, 1) dosya boyutunu ve 2) değişken indirme sürelerini de elde etmek istiyorum.

aşağıdaki kullanarak PHP ile dosya alabilirsiniz:

$getFile = exec("wget --user-agent=\"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3\" $url -O Downloaded-$url.html"); 

kolayca alabilirsiniz dosya boyutu ama beni eluding oluyor ilk etapta bu dosyayı almak için geçen indirme zamanı.

Belki kullanabileceğim wget'den daha iyi bir seçenek var ...?

+1

[Curl işlevleri] (http://php.net/manual/en/book.curl.php) –

cevap

0

Bu çalışır:

<?php 

$loadInstance = new LoadFileFromHTML(); 
echo "Duration:".$loadInstance->loadFileAndGetTime("your-file", "http://www.google.com"); 

class LoadFileFromHTML 
{ 
    public function loadFileAndGetTime($fileName, $fromUrl) 
    { 
     $aCurlOptions = array(
      CURLOPT_URL    => $fromUrl, 
      CURLOPT_USERAGENT  => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3", 
      CURLOPT_RETURNTRANSFER => 1, 
      ); 

     $curlInstance = curl_init(); 
     curl_setopt_array($curlInstance, $aCurlOptions); 

     $start  = microtime(TRUE); 
     $returnedData = curl_exec($curlInstance); 
     $duration  = microtime(TRUE) - $start; 

     curl_close($curlInstance); 
     file_put_contents($fileName, $returnedData); 
     return $duration; 
    } 
} 
?> 

Not: çıktı dosyası yazılabilir olursa onay yapılır

  1. .
  2. CURL seçeneklerinde çözmeniz gereken bir SSL sertifikası sorunu olabilir.
  3. Verilen URL ile ilgili bir kontrol yapılmadı - doğruysa.

Size gereken süreyi saniye cinsinden döndürür.

İlgili konular