Как я могу создать страницу 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.