Ich habe mir ein Skript zur Prozeßüberwachung gebaut.
Folgendes Skript enthält eine Testfunktion counter() welche einfach nur 20 Sekunden durchläuft und Informationen über die Funktion write_status() den Prozeß in ein File schreiben soll:
PHP-Code:
$file=md5(uniqid(rand()));
function counter($file)
{
$tstmp=time();
$tasktime=20;
$passed=$tstmp;
$fp=tmpfile();
$tm=time();
for ( ;$now<($tstmp+$tasktime);$now=time()) {
//echo "";
//echo "now ".$now." tstmp ".$tstmp." passed ".$passed." ";
echo " ";
if (($now-$passed)>1) {
$gone=($now-$tstmp);
$passed=time();
$proc= "Test Funtionn";
$freq="0.5n";
$action="Durchlaufe Schleifen";
$start=$tm."n";
$stop=$tasktime."n";
$current=$gone."n";
$p_info ="";
$p_info .=$proc;
$p_info .=$freq;
$p_info .=$action;
$p_info .=$start;
$p_info .=$stop;
$p_info .=$current;
write_status($p_info,$file);
}//if end if
}//end for
write_status($p_info."finishn",$file);
}//end counter;
function write_status($gone,$file)
{
$content=$gone;
$fp=fopen($file,"w+");
fwrite($fp,$content);
fclose($fp);
}
Ein anderes Skript B liest nun regelmäßig das File aus (Filename wird mit Get übergeben) und zeigt die Prozeßinfos an.
Das Skript gibt einen html refresh aus, solange bis $status== "finish" ist. Das Skript ist auf das wesentliche gekürzt.
PHP-Code:
$file=$_GET['file'];
$fp=fopen($file,"r");
$readcontent=fread($fp,filesize($file));
fclose($fp);
$array=explode("n",$readcontent);
$proc= $array[0];
$freq=$array[1];
$action=$array[2];
$start=$array[3];
$stop=$array[4];
$current=$array[5];
$status=$array[6];
if ($status=="finish") $close=1;
$proc_time=(time()-$start);
$pro=$current*100/$stop; //procent done
$neg_pro=(100-$pro); // procent todo
$proc_time_calc=number_format(($proc_time*$neg_pro/$pro),0);
Die Arrays spreche ich hier über Nummern an. Das finde ich eben schlecht gelöst, Dein geposteter Code schafft da schon Abhilfe. include ersetz dann quasi fopen usw.
Gibt es aber eine bessere alternative um
$foo='foo_inhalt';
nicht durch
echo 'foo='.$foo;
sondern durch etwas wie
echo name_von($foo)."=".$foo;
oder
echo variable_mit_allem_pipapo($foo);
auszugeben (echo nur als Beispiel)?
Kurz, die Ausgabe einer Variable samt Namen?
Oder
a) ist Perfektionissmus Sch***e
b) sollte ich mal Urlaub machen und unter a) genannte Eigenschaft vergessen.
c) ?
bye
Stefan