Как определить скорость интернета в PHP?

Как я могу создать страницу PHP, которая будет определять скорость интернет-пользователя и показывать ее на странице? Что-то вроде,

Ваша интернет-скорость ??? Kbps

Это может быть не совсем то, что вы ищете (читайте смелую часть), но я сомневаюсь, что что-то еще возможно.

Этот скрипт отправляет вашему клиенту 512 Кбайт HTML-комментариев. Разбор HTML, который может добавить к суммарному времени передачи, поэтому не принимайте это за скорость загрузки.

Цитата из: PHP Speed ​​test

Источник находится здесь:

http://jan.moesen.nu/code/php/speedtest/index.php?source=1

Надеюсь, это поможет.

<?php $kb=1024; echo "streaming $kb Kb...<!-"; flush(); $time = explode(" ",microtime()); $start = $time[0] + $time[1]; for($x=0;$x<$kb;$x++){ echo str_pad('', 1024, '.'); flush(); } $time = explode(" ",microtime()); $finish = $time[0] + $time[1]; $deltat = $finish - $start; echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."Kb/s"; ?> 

http://www.emanueleferonato.com/2006/05/31/determine-connection-speed-with-php/

Например, по запросу AJAX на стороне клиента. Таким образом, вы можете определить приблизительную скорость загрузки, но не загружать. Для загрузки, отправка большого запроса AJAX POST может справиться с этим.

С jQuery и $.ajax это довольно тривиально.

Пользователь загружает файл на ваш сервер. Затем вы делите размер файла в kb со временем, прошедшим через секунды. Затем вы получаете kb / s (скорость загрузки).

 $kb = round(filesize("file.jpg") / 1024); // 500kb $time = time() - $start; // 5s $speed = round($kb / $time); // 100kb/s 

Это работает для меня:

  $kb=512; echo "streaming $kb Kb...<!-"; flush(); $time = explode(" ",microtime()); $start = $time[0] + $time[1]; for($x=0;$x<$kb;$x++){ echo str_pad('', 1024, '.'); flush(); } $time = explode(" ",microtime()); $finish = $time[0] + $time[1]; $deltat = $finish - $start; echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."Kb/s"; ?> 

Я получил это отсюда .

Не совсем возможно. PHP является сторонним сервером, и скорость обнаружения будет клиентом.

Вы можете найти работу, чтобы сделать это, tho.