Hallo,
mit folgendem Teil eines Scriptes lese ich eine E-Mail aus um die Daten später in die Datenbank zu schreiben:
Und hier mal eine Beispiel-E-Mail die ausgelesen wird:
Jetzt gibt es aber User die eine Signatur mit der E-Mail mitschicken, damit kommt das Script aber nicht klar, da es scheinbar die Zeilen von unten ausliest, und dann falsche Werte in die Datenbank geschrieben werden.
Von Oben ist die E-Mail immer gleich aufgebaut und die Zeilen bleiben da immer gleich-
Wie kann ich das Script umschreiben, damit die Zeilen von oben an gezählt und ausgelesen werden?
LG Sven
mit folgendem Teil eines Scriptes lese ich eine E-Mail aus um die Daten später in die Datenbank zu schreiben:
PHP-Code:
function auswerten($fname, $content)
{
$content = explode("\n", $content);
$zeilen = count($content);
$liste = substr($content[22],5,17);
$zeile_22 = $content[$zeilen -5];
$zeile_23 = $content[$zeilen -4];
$zeile_24 = $content[$zeilen -3];
$zeile_25 = $content[$zeilen -2];
$zeile_26 = $content[$zeilen -1];
$datum_array = explode(":",$zeile_22);
$liste_data = explode(".",$datum_array[1]);
$jahr = $liste_data[0];
$monat = $liste_data[1];
$tag = $liste_data[2];
$stunde = $liste_data[3];
$minute = $liste_data[4];
$sekunde = $liste_data[5];
$jahr1 = $jahr+2000;
$sp1_array = explode(":",$zeile_24);
$sp1_player_data = explode(";",$sp1_array[1]);
$spieler1 = $sp1_player_data[0];
$spielpunkte1 = $sp1_player_data[1];
$gewonnen1 = $sp1_player_data[2];
$verloren1 = $sp1_player_data[3];
$gesamt1 = $sp1_player_data[4];
$sp2_array = explode(":",$zeile_25);
$sp2_player_data = explode(";",$sp2_array[1]);
$spieler2 = $sp2_player_data[0];
$spielpunkte2 = $sp2_player_data[1];
$gewonnen2 = $sp2_player_data[2];
$verloren2 = $sp2_player_data[3];
$gesamt2 = $sp2_player_data[4];
$sp3_array = explode(":",$zeile_26);
$sp3_player_data = explode(";",$sp3_array[1]);
$spieler3 = $sp3_player_data[0];
$spielpunkte3 = $sp3_player_data[1];
$gewonnen3 = $sp3_player_data[2];
$verloren3 = $sp3_player_data[3];
$gesamt3 = $sp3_player_data[4];
echo "<br><br>";
// Nick, Spielpunkte, Gewonnen, Verloren, Gesamt
$a[0]=array($spieler1, $spielpunkte1, $gewonnen1, $verloren1, $gesamt1);
$a[1]=array($spieler2, $spielpunkte2, $gewonnen2, $verloren2, $gesamt2);
$a[2]=array($spieler3, $spielpunkte3, $gewonnen3, $verloren3, $gesamt3);
foreach($a as $v) {$s0[]=$v[0]; $s1[]=$v[1]; $s2[]=$v[2]; $s3[]=$v[3]; $s4[]=$v[4];}
array_multisort($s4, SORT_DESC, SORT_NUMERIC,
$s1, SORT_ASC, SORT_REGULAR,
$s2, SORT_ASC, SORT_REGULAR,
$s3, SORT_ASC, SORT_REGULAR,
$s0, SORT_ASC, SORT_REGULAR, $a);
Spielergebnis 05.12.2013
Ergebnis des Turnierspiels gespielt von Wolle3001 am 05.12.13.
------------------------------------------------------------------
Von den 36 Einzelspielen wurden 5 eingepasst.
------------------------------------------------------------------
schluse gewinnt 7 und verliert 6 Spiele.
Er/Sie hat am Schluss 11 Spielpunkte.
Das entspricht 221 Turnierpunkten.
------------------------------------------------------------------
Sting2 gewinnt 4 und verliert 2 Spiele.
Er/Sie hat am Schluss -25 Spielpunkte.
Das entspricht 395 Turnierpunkten.
------------------------------------------------------------------
Wolle3001 gewinnt 10 und verliert 2 Spiele.
Er/Sie hat am Schluss 445 Spielpunkte.
Das entspricht 1165 Turnierpunkten.
------------------------------------------------------------------
Diese Spieler haben gespielt:
schluse
Sting2
Wolle3001
------------------------------------------------------------------
##ID:13.12.04.23.00.32
##DET:Sting2;36;5
##SP1:schluse;11;7;6;221
##SP2:Sting2;-25;4;2;395
##SP3:Wolle3001;445;10;2;1165
Ergebnis des Turnierspiels gespielt von Wolle3001 am 05.12.13.
------------------------------------------------------------------
Von den 36 Einzelspielen wurden 5 eingepasst.
------------------------------------------------------------------
schluse gewinnt 7 und verliert 6 Spiele.
Er/Sie hat am Schluss 11 Spielpunkte.
Das entspricht 221 Turnierpunkten.
------------------------------------------------------------------
Sting2 gewinnt 4 und verliert 2 Spiele.
Er/Sie hat am Schluss -25 Spielpunkte.
Das entspricht 395 Turnierpunkten.
------------------------------------------------------------------
Wolle3001 gewinnt 10 und verliert 2 Spiele.
Er/Sie hat am Schluss 445 Spielpunkte.
Das entspricht 1165 Turnierpunkten.
------------------------------------------------------------------
Diese Spieler haben gespielt:
schluse
Sting2
Wolle3001
------------------------------------------------------------------
##ID:13.12.04.23.00.32
##DET:Sting2;36;5
##SP1:schluse;11;7;6;221
##SP2:Sting2;-25;4;2;395
##SP3:Wolle3001;445;10;2;1165
Von Oben ist die E-Mail immer gleich aufgebaut und die Zeilen bleiben da immer gleich-
Wie kann ich das Script umschreiben, damit die Zeilen von oben an gezählt und ausgelesen werden?
LG Sven
Kommentar