Home  >  Article  >  Backend Development  >  帮忙观段代码

帮忙观段代码

WBOY
WBOYOriginal
2016-06-13 10:34:50851browse

帮忙看段代码

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->        $filename = 'test.txt';    $data = file_get_contents($filename);    $fsize = filesize($filename) / 1024;        $start = time();    echo "<!-- $data -->";    $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 在扣除上行时间后,得到下行时间
然后.....
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn