0

私は奇妙な問題を抱えています.これは私のコードです:

<!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>

私は実際に帯域幅を計算しようとしています.私が得るエラーは、$bandwidth計算部分の「ゼロによる除算」です.奇妙な部分は、ウィンドウを更新し続けると、突然答えが出て、再び問題が発生することです.次のリフレッシュ。

追加情報:

$start と $stop が同じ場合にエラーが発生することがわかりました。私の質問は次のとおりです。ローカルホストは、テキスト ファイルのオープンと書き込みの部分を同じ時間内に完了するのが非常に高速であり、その結果、ゼロ エラーが発生しますか?私もチェックしましたそのテキスト ファイルにはデータが含まれており、1 回おきに削除されて書き込まれます。その背後にある理由を明確に説明したいだけです。

4

3 に答える 3

2

より正確な時間計算が必要で、システムがそれをサポートしている場合は、次を使用できますmicrotime

$time_including_microseconds = microtime();

爆発については、マニュアルの例を参照してください。

于 2012-08-29T17:28:18.817 に答える
0

この関数を使用して、ファイル アクセス時間を測定できます。

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

于 2012-08-29T17:25:01.133 に答える
0

コメントにあるように、ファイル操作 (書き込み) が 1 秒未満で完了する可能性が非常に高く、ゼロ除算が発生します。

目標を達成するには、PHP のマイクロタイム機能を使用することを検討してください。これには、タイムスタンプのミリ秒が含まれます。

関連項目: PHP スクリプトの実行時間を正確に測定する方法

于 2012-08-29T17:29:00.080 に答える