怎样用PHP写个测试从用户到WEB服务器带宽的代码????

zhuaibing 2003-11-12 11:03:49
怎样用PHP写个测试从用户到WEB服务器带宽的代码????
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuaibing 2003-11-13
  • 打赏
  • 举报
回复
谢谢!

谢谢网上的朋友!!!!
feel8 2003-11-12
  • 打赏
  • 举报
回复
mark
春哥视角 2003-11-12
  • 打赏
  • 举报
回复
更正:IMG标记部分多了个单引号,应该是:
<img src=images/62816bytes.gif?hahaha=<?=time()?> width='1' height='1' onload='CalcSpeed(timeStart);'>
春哥视角 2003-11-12
  • 打赏
  • 举报
回复
鸣谢:http://aspeedtest.com
春哥视角 2003-11-12
  • 打赏
  • 举报
回复
实际上这个很简单的,用任何语言都能实现,主要的奥秘是在JAVASCRIPT中。
思路是:加载一个比较大的图片,在开始时用JAVASCRIPT记录一下时间,加载完毕后再记录一下时间,图片大小是已知的,开始时间和结束时间已是已知的,呵呵,计算带宽就是小学数学问题了。
具体做法如下:
testspeed.php
<script language="JavaScript">
<!-- hide script

function RightNow()
{
var time;

time = new Date();
return time.getTime();
}

function CalcSpeed(timeStart)
{
var timeEnd, timeElapsed, kbytes;

timeEnd = RightNow();
timeElapsed = (timeEnd - timeStart)/1000 - 0.15;

kbytes = 61/timeElapsed

document.forms[0].kbytes.value = kbytes;
document.forms[0].submit();

}

// end hide script -->
</script>


Testing.....
<!-- ***** SCRIPT: GET TIME 取开始时间***** -->
<script language="JavaScript">
<!-- hide script
timeStart = RightNow();
// end hide script -->
</script>

<!-- ***** IMAGE TO DOWNLOAD ***** -->

<img src=images/62816bytes.gif‘width='1' height='1' onload='CalcSpeed(timeStart);'><br>

<!-- ***** FORM ***** -->
<form action="speedTestResults.php" method="post">
<input type="hidden" name="kbytes" value="">
</form>
<!-- ***** END FORM ***** -->

这段程序的关键点在于利用img的onload事件,onload事件在图片加载完毕后触发,然后通过CalcSpeed函数计算下载速率并提交到结果显示页speedTestResults.php。

本例中我用了一个62816字节的白色图片进行下载测试。

当然,看上去可以了,但并不是完美无缺!上面程序在第一次运行时正常,但第二次运行......下载速率超过10M!!!就是你用小猫上网也一样,是小猫变成了老虎?呵呵,不要高兴得太早,小猫还是小猫,是变不成老虎的,这是因为浏览器的缓存帮了倒忙,第二次运行时该图片就在缓存中,浏览器就会直接从你的硬盘上读取,实际上你测试的是硬盘的读取速度!

那么怎么解决这个问题呢,很简单,在图片后写一串随机的query string就可以了。这样就可以骗过浏览器啦!
OK,我们把图片那段改成这样:

<img src=images/62816bytes.gif?hahaha=<?=time()?>‘width='1' height='1' onload='CalcSpeed(timeStart);'>

哼哼!小猫的原形就露出来啦!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧