Come rilevare la velocità di Internet in PHP?

Come posso creare una pagina PHP che rilevi la velocità di internet dell'utente e la mostri sulla pagina? Qualcosa di simile a,

La tua velocità di internet è ??? kbps

Questo potrebbe non essere completamente quello che stai cercando (leggi la parte in grassetto), ma dubito che qualcos'altro sia ansible.

Questo script invia 512 KB di commenti HTML al tuo client. L'analisi di HTML può aggiungere al tempo di trasferimento totale, quindi non prendere questo come la velocità di download raw.

Citato da: PHP Speed ​​test

La fonte è qui:

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

Spero possa aiutare.

<?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/

Ad esempio, temporizzando la richiesta AJAX sul lato client. In questo modo puoi calcolare la velocità di download approssimativa, ma non caricare. Per il caricamento, l'invio di una grande richiesta POST AJAX può gestirlo.

Con jQuery e $.ajax è piuttosto semplice da fare.

Tramite l'utente carica un file sul tuo server. Quindi dividi la dimensione del file in kb con il tempo trascorso in secondi. Quindi ottieni kb / s (velocità di upload).

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

Questo funziona per me:

  $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"; ?> 

L'ho preso da qui .

Non è davvero ansible. PHP è lato server, la rilevazione della velocità sarebbe lato client.

Potresti trovare del lavoro per farlo, comunque.