PHP程序无法正常工作

时间:2012-08-29 17:20:31

标签: php networking network-programming localhost

我遇到了一个奇怪的问题。这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$fp=fopen("test.txt","w",true);
if($fp)
{
$start=time();
for($i=0;$i<=17800;$i++)
{
    fwrite($fp,"bandwith");
}
fclose($fp);
$stop=time();
$diff=round($stop-$start,2);
$fsize=round(filesize("test.txt")/1024,2);
$bandwidth=$fsize/$diff;
echo "<strong>The speed of your broadband is</strong> ".$bandwidth;
}
else
{
    echo ("problem with permission");
}
?>

</body>
</html>

我实际上是在尝试计算带宽。我得到的错误是在$带宽计算部分上“除以零”。奇怪的是,当我不断刷新窗口时,我突然得到答案然后再问题在下次刷新时出现。

额外信息:

我发现当$ start和$ stop相同时会发生错误。现在我的问题是:localhost是如此快速完成文本文件打开并在同一时间内写入部分导致除法我的零错误?我还检查了文本文件,它包含了数据,并且每隔一段时间就被删除和写入。我只想清楚地解释其背后的原因。

3 个答案:

答案 0 :(得分:2)

如果您需要更准确的时间计算,并且您的系统支持它,您可以使用microtime

$time_including_microseconds = microtime();

请参阅手册中有关爆炸的示例。

答案 1 :(得分:0)

您可以使用此功能测量文件访问时间:

http://php.net/manual/en/function.filemtime.php

答案 2 :(得分:0)

正如评论所说,你的文件操作(写入)很可能在不到一秒的时间内完成,导致除以零。

要实现您的目标,请考虑使用PHP的microtime函数。这包括带时间戳的毫秒数。

另见: Accurate way to measure execution times of php scripts