幫忙觀段代碼

來源:互聯網
上載者:User
幫忙看段代碼
PHP code
        $filename = 'test.txt';    $data = file_get_contents($filename);    $fsize = filesize($filename) / 1024;        $start = time();    echo "";    $stop = time();        $duration = $stop - $start;    $speed = round($fsize / $duration, 2);        echo "Your network speed: $speed kb/s";

書上說這段代碼可以計算網路頻寬,我試了下發現不行,$start和$stop是相等的。仔細想想,$duration計算的是php引擎解析echo語句的時間,而不是使用者接收$data的時間。再想想,如果要計算頻寬,必須要計算使用者擷取html檔案的時間,可是那是在php解析完畢之後才進行的,難道用php計算使用者頻寬是件不可能的事??請高手指正,求教計算使用者頻寬的實現

------解決方案--------------------
把 $stop = time(); 移到最前邊
你的代碼檢測的是讀取檔案的速度

繼續把
$filename 賦值為遠程檔案名稱
filesize($filename) 改為 strlen($data)
你的代碼檢測的是你伺服器的頻寬

只用 php 是不能檢測使用者頻寬的
必須有用戶端協同,大致如下
用戶端發出測試請求(onsubmit),同時記錄和發出發生請求的時間
php 收到請求後輸出固定大小的內容,並記錄用戶端發來的時間(據此可計算用戶端上行時間)
在用戶端的onload事件中,再次向php發出目前時間
php 在扣除上行時間後,得到下行時間
然後.....
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.