Speedtest in PHP

Hi Leute...

Wie programmiere ich mir einen Speedtest? z.B.: www.speedmeter.de , das ist doch nicht weiter als ein Script der auf einen Server ist und der dann deinen Speedtestet :) Ich hoffe ihr könnt mir da weiter helfen. Thx.

MfG

Crux
 
??? php is auf'm server da kannst du sowas nur sehr aufwendig machen // must nen eigene kleinen webserver proggen sowas machst du besser per js
 
Veers:
Die Frage ist nicht, wie man einen Webserver aufsetzt oder PHP zum laufen bringt, sondern wie man den Speedtest implementiert.

Crux:
Ich würde mal sagen du musst die aktuelle Zeit nehmen, dann dem Cient eine Datei schicken wenn sie fertig übertragen ist wieder die Zeit nehmen. und dann natürlich Größe/(Endzeit - Startzeit)=Speed

Ist ein bisschen schwammig, sorry aber ich kenn mich mit PHP nicht aus.
 
@Nornagest

Sowas hatte ich auch schon ihn den Sinn, aber ich weis nicht wie ich es umsetzten soll? Denn ich bin nicht gerade das PHP Genie. Über eine Fertiges PHP Beispiel würde ich mich freuen. THX

MfG

Crux
 
Code:
<?php

$startzeit = time();

///////////////////////////////
//Der Block mit den zu ladenden Daten
///////////////////////////////

$endzeit = time();

$uhrzeit1 = date("H:i",$startzeit);
$uhrzeit2 = date("H:i",$endzeit);

echo "Ladestart: ".$uhrzeit1;
echo "<br>";
echo "Ladeende: ".$uhrzeit2;
?>

so ungefähr könnte man es machen....allerdings verfälscht das eRgebnis, je nach dem Inhalt der Daten die zwischen der start- und endzeit, geladen werden.
 
time() für nen timer naja ich weis ned...
microtime(); is wohl besser :)

@brabax: hm scheint mir eher nach nem benchmark für den client als den server aber, könnte so ähnlich gehen :D
 
Hi Leute...

Thx für eure hilfe...

Ich habe nach längeren suche auch eine lösung gefunden.

Code:
<?
// Start Language
$lang[0][0]="Calculating Download Speed...";
$lang[1][0]="Bezig met berekenen gemiddelde downloadsnelheid...";
$lang[0][1]="<b>READY</b>:";
$lang[1][1]="<b>KLAAR</b>:";
$lang[0][2]="Send!";
$lang[1][2]="Verstuurd!";
// End language
$DUTCH=1;
$ENGLISH=0;
$language=$ENGLISH;
echo $lang[$language][0];?><!-- <?
$tstart=time();
$size=1024; // Whats the size of 1 string (bytes)?
$times=1024; // How many times do you want to send it?
$out=array();
// Fill the array buffer
for ($i=0;$i<=$times;$i++)
{
$out[$i]=str_repeat("#",$size);
}
//
$j=0; // Reset Kb/s Counter

//Start Output
for ($i=0;$i<=$times;$i++)
{
echo $out[$i]; //Output the data
$tend=time();
$totaltime = ($tend - $tstart);

if (round($totaltime) != $t) // If time changed, get speed!
{
$t=round($totaltime);
$kbs=$kbx+$size; //Add 1 last time
$kbx=0; // Reset KBX 
}else{
$kbx=$kbx+$size;// Add Size
}
if ($kbs != 0)
{
$kb[$j]=$kbs;
$ff=0; // Dummy name :P
$j=$j+1;
// For Calculating Speed
for ($h=0;$h<=$j;$h++)
{
$ff=$kb[$h]+$ff;
}
// Set Speed To A Var
$last=($ff/$j/1024);


}

$kbs=0; // Reset Kb/s
}
echo "-->".$lang[$language][1]." ".round($last)." Kb/s \n ".($size*$times)." bytes ".$lang[$language][2]."<br><!--"; // Output Result
?> -->
<!-- 
Free Code By TV2kNET.net
[URL]http://www.tv2knet.net[/URL]
[URL]http://web.tv2knet.net[/URL]
[EMAIL]tvirus4ever@yahoo.co.uk[/EMAIL]
-->

MfG

Crux
 
Zurück
Oben