jeandias 0 Denunciar post Postado Agosto 2, 2007 Nao sei se aqui (nesta seção do forum)é o melhor lugar para postar essa duvida, mas alguem saberia me explicar como funciona esses sites que calculao a velocidade de sua conexao. Estou começando a programar PHP agora e conheço pouca coisa. olhem o exemplo a seguir: http://www.rjnet.com.br/2velocimetro.php como e feito esse calculo? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
hygorsandro 0 Denunciar post Postado Agosto 25, 2007 Teste de velocidade de conexão à Internet Como obter um reflexo aproximado da conexão à internet, medida em Kbps. Estudando rapidamente os sistemas que obtém um reflexo aproximado da conexão à Internet, medida em Kbps; resolvi realizar algo similar em Php. Qual é a utilidade? Pode-se determinar em quanto tempo aproximado se baixa um arquivo da Internet. Por exemplo, se estivermos elaborando uma página de downloads e quisermos mostrar ao usuário em quanto tempo APROX, estará esse arquivo em seu PC. Na verdade é algo extremamente simples, já veremos mais adiante porquê. Teoria Básica É importante ressaltar que um caractere QUALQUER sempre terá um tamanho de 1 Byte, ou seja, 8 impulsos eletrônicos (8 Bit) , pelo qual uma cadeia de texto que contenha mil e vinte e quatro caracteres no total, terá uma dimensão de 1024 Bytes o que seria igual a 1 KB. 1 KB é igual a 1024 Bytes 1 MB é igual a 1024 KB 1 GB é igual a 1024 MB 1 TB é igual a 1024 GB O código fonte: arquivo : test.php <? set_time_limit(0); $tempo_micro[1]= microtime(); $q_espacos = explode(" ",$tempo_micro[1]); $tempo_[1]= $q_espacos[1]+$q_espacos[0]; $conteudo=file_get_contents('http://localhost/carregar_bytes.php'); /* mudar por path real (URL) http://seudominio/carregar_bytes.php)*/ $tamanho_KB= strlen($conteudo)/1024; $tempo_micro[2] = microtime(); $q_espacos= explode(" ",$tempo_micro[2]); $tempo_[2] =$q_espacos[1] + $q_espacos[0]; $tempo_utilizado = number_format(($tempo_[2] - $tempo_[1]),3, "." ,","); $velocidade= round($tamanho_KB/$tempo_utilizado,2); echo 'Sua velocidade de conexão é de: '.$velocidade.' Kbps <br> Foram enviados:'.$tamanho_KB. ' Kb, Tempo utilizado: '.$tempo_utilizado.' Segundos <hr>'; for ($i=10; $i>=1; $i--){ $val_Kb=$i*100; if($velocidade>=800)$velocidade_=800; else $velocidade_=$velocidade/2; if($velocidade>=$val_Kb && !$col){ echo '<div style="background-color:#F0F0F0; width:500px; float:left"><img width="'.($velocidade_).'" height="8" style="background-color: #FF0000" border="0"></div><strong>Sua conexão</strong><br>'; $col=true; } echo '<div style="background-color:#F0F0F0; width:500px; float:left"><img width="'.($val_Kb/2).'" height="8" style="background-color: #000099" border="0"></div>'.$val_Kb.' Kbps<br>'; } ?> arquivo : carregar_bytes.php <? print str_repeat("i",1024000); ?> Explicando: Criamos o arquivo carregar_bytes.php, que conterá unicamente um processo aleatório de repetições até alcançar o valor de 1024000, 1000 KB, utilizando a função str_repeat(); que funciona como algo parecido a um loop. Repetirá 1024000, a letra i Chamaremos o arquivo test.php, Primeiro, utilizaremos a função set_time_limit(), para indicar que não há limite no tempo de execução do script, lembremos que por default vem no php.ini 30 segundos, e se este tempo for alcançado será produzido um erro fatal de tempo de execução. Obtemos o tempo nesse instante em milésimos de segundos Logo, faremos uma abertura do arquivo anterior e obtemos o conteúdo, mediante a função file_get_contents(), cabe destacar que o parâmetro que devemos utilizar deve seguir o esquema: protocol:// para que seja tomado como uma URL e se extraia o resultado do processo repetido anteriormente, do contrário se assumirá que o arquivo é local e se executará o código fonte diretamente: ou seja devemos colocar; file_get_contents('http://odominio/carregar_bytes.php'), para que funcione corretamente. Porém, não imprimiremos na tela o conteúdo, somente o carregaremos. Agrupamos na variável $tamanho_KB, a longitude de caracteres de $conteudo, e o dividimos entre 1024; para passá-lo de BYTES A KB. Quanto à abertura, voltamos a obter o tempo em milésimos de segundos para verificar quanto tempo transcorreu durante a execução do passo anterior e agrupamos esse valor na variável $tempo_utilizado, lhe damos formato com a função number_format(); Obtemos a velocidade em KBPS, dividindo o total de KB carregados, entre o tempo empregado; Por exemplo, se: 100 Kb, são carregados em 2 segundos, a velocidade nesse instante é de 50 Kbps, mas ode variar dependendo de muitos fatores. Imprimimos o resultado, e geramos um atraente esquema visual. Autor/fonte do artigo: CriarWeb.com (http://www.criarweb.com/artigos/564.php) Compartilhar este post Link para o post Compartilhar em outros sites