Hi Leut's,
meine Flash/PHP Highscoreliste funkt super bis auf den Umstand, das php beim zurückschreiben auch den letzten Eintrag löscht wenn nicht 10 Einträge (soviel erlaube ich maximal) vorhanden sind. D.h. dass man noch irgendwo einen Check machen müßte, ob in der Data.txt auch wirklich 10 Highscore-Einträge vorhanden sind.
Data.txt:
Tiger2;1200
tiger;1000
Hoschi;700
Martin;614
Thomas;592
Alex;541
Richi;397
Manfred;341
tiger;1000
php-writeback-funktion:
<?
$winner="tiger"; //kommt von Flash zurück
$credits=1000; //kommt von Flash zurück
$fp = fopen("data.txt","r");
while($data = fgets($fp,1024)){ // zeile für zeile einlesen
$data = explode(";",$data); // jede zeile aufsplitten
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
}
fclose($fp);
arsort($hitlist);
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)
if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
$fp=fopen("data.txt","w");
while (list ($key, $val) = each ($hitlist)) {
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
}
fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen
fclose($fp);
}
?>
Bitte um Rat?!?!?
CU
meine Flash/PHP Highscoreliste funkt super bis auf den Umstand, das php beim zurückschreiben auch den letzten Eintrag löscht wenn nicht 10 Einträge (soviel erlaube ich maximal) vorhanden sind. D.h. dass man noch irgendwo einen Check machen müßte, ob in der Data.txt auch wirklich 10 Highscore-Einträge vorhanden sind.
Data.txt:
Tiger2;1200
tiger;1000
Hoschi;700
Martin;614
Thomas;592
Alex;541
Richi;397
Manfred;341
tiger;1000
php-writeback-funktion:
<?
$winner="tiger"; //kommt von Flash zurück
$credits=1000; //kommt von Flash zurück
$fp = fopen("data.txt","r");
while($data = fgets($fp,1024)){ // zeile für zeile einlesen
$data = explode(";",$data); // jede zeile aufsplitten
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
}
fclose($fp);
arsort($hitlist);
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)
if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
$fp=fopen("data.txt","w");
while (list ($key, $val) = each ($hitlist)) {
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
}
fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen
fclose($fp);
}
?>
Bitte um Rat?!?!?
CU
Kommentar