с предыдущей проблемой кое-как разобрался, но вот новая:
нужно измерить скорость соединения путем определения времени закачки файла на комп клиента.
есть такой код:
PHP код:
<title>Тест скорости соединения</title>
<form name="form1" method="post" action="speed.php">
<h3 align="center">
<h3 align="center">Тест скорости соединения (download speed)</h3>
<p align="center"><span style="font-size:10pt;"><font face="Verdana">Выберите размер тествого файла: </font></span><select name="size" size="1">
<option selected value="256">256 kb</option>
<option value="512">512 kb</option>
</select></p>
<p align="center"><input type="submit" name="formbutton1" value="Принять!"></p>
</form>
<?php
if($_POST['size'] == '256')
{
$usec1 = microtime(1);
readfile("test256k");
$usec2 = microtime(1);
$exec_time = $usec2-$usec1;
$size_in_kbit = 2048;
$size_in_kb = 256;
$speed_in_kbits = $size_in_kbit/($exec_time/1000000);
$speed_in_kbs = $size_in_kb/($exec_time/1000000);
ob_start();
echo "Ваш IP: {$_SERVER['REMOTE_ADDR']}<br><br>";
echo "Размер тестового файла = 256 КБайт.<br>";
echo "СКОРОСТЬ (kb/s) = ", bcpow($speed_in_kbs, 1, 2), "<br>";
echo "СКОРОСТЬ (kbit/s) = ", bcpow($speed_in_kbits, 1, 2), ".";
}
elseif($_POST['size'] == '512')
{
$usec1 = microtime(1);
readfile("test512k");
$usec2 = microtime(1);
$exec_time = $usec2-$usec1;
$size_in_kbit = 4096;
$size_in_kb = 512;
$speed_in_kbits = $size_in_kbit/$exec_time;
$speed_in_kbs = $size_in_kb/$exec_time;
echo "Ваш IP: {$_SERVER['REMOTE_ADDR']}<br><br>";
echo "Размер тестового файла = 512 КБайт.<br>";
echo "СКОРОСТЬ (kb/s) = ", bcpow($speed_in_kbs, 1, 2), "<br>";
echo "СКОРОСТЬ (kbit/s) = ", bcpow($speed_in_kbits, 1, 2), ".";
}
?>
, но он пихает этот бинарный файл (test256k или test512k) в браузер, что абсолютно не нужно. Функции очищения буфера вывода ессно не помогают, а при использовании других функций получения файла скорость выходит около 10~700 МБ/сек и это через IrDA... кто может реально помочь - отзовитесь...
Социальные закладки