CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
11.11.2004, 15:29:58
|
Anfänger
|
|
Registriert seit: Nov 2004
Beiträge: 16
|
|
PHP hierfür geeignet?
Hi,
ich habe folgendes Problem:
ich möchte aus einem Datenarchiv (alle bisherigen Bundesliga Ergebnisse) für einen beliebigen Faktor (zb. Heimvorteil =
20% größere Siegchance) die ganzen bisherigen Spiele durchrechnen lassen und nach 1,0,2 (also Heimsieg,Unentschieden, Auswärtssieg) einschätzen und dann mit den tatsächlich eingetroffen Resultaten vergleichen und als Ergebniss die Anzahl der richten Tipps erhalten.
Irgendwann soll das ganze zur Prognose zukünftiger Spiele führen.
Ist PHP für eine solche Anwendung geeignet? Oder sollte ich es besser mit etwas anderem versuchen. Habe keinerlei Progammiererfahrungen. HTML behersche ich allerdings, daher auch die Idee mit PHP.
Wäre dankbar für irgendwelche Ideen.
Grüsse, faiZ
|
11.11.2004, 15:33:00
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Jo, geht.
Tutorial:
--> http://tut.php-q.net/
Viel Spaß! :)
|
12.11.2004, 18:40:21
|
Anfänger
|
|
Registriert seit: Nov 2004
Beiträge: 16
|
|
ok habe mich mal versucht, leider schon bald auf die ersten Probleme gestoßen :/.
So sieht z.B. eine Datei zum einlesen aus:
01.08.03 20:30 FC Bayern München : Eintracht Frankfurt 3:1 (3:0)
02.08.03 15:30 Hertha BSC Berlin : Werder Bremen 0:3 (0:2)
02.08.03 15:30 VfL Wolfsburg : VfL Bochum 3:2 (2:2)
02.08.03 15:30 FC Schalke 04 : Borussia Dortmund 2:2 (1:0)
02.08.03 15:30 Hamburger SV : Hannover 96 0:3 (0:1)
02.08.03 15:30 Bayer 04 Leverkusen : SC Freiburg 4:1 (3:1)
02.08.03 15:30 1.FC Kaiserslautern : TSV 1860 München 0:1 (0:1)
03.08.03 17:30 Borussia M'gladbach : 1.FC Köln 1:0 (0:0)
03.08.03 17:30 Hansa Rostock : VfB Stuttgart 0:2 (0:0)
bisheriger Ansatz:
<?PHP
$datei = "bundesliga2.txt";
$bundesliga = file($datei);
foreach ($bundesliga as $zeile) {
echo "$zeile <br>n";
}
?>
nun möchte ich aber Datum, Uhrzeit, Manschaftsnamen, Ergebniss usw. jeweils als einzelne Variablen haben, nicht die komplette Zeile. Wie könnte ich das machen?
|
12.11.2004, 20:14:16
|
|
Member
|
|
Registriert seit: Dec 2002
Ort: Soest
Beiträge: 623
|
|
Beispiel:
Code:
$zeile = "01.08.03 20:30 FC Bayern München : Eintracht Frankfurt 3:1 (3:0)";
$pattern = "#(d{2}.d{2}.d{2}) (d{2}:d{2}) ([w.' ]+?) : ([w.' ]+?) (d{1,2}):(d{1,2}) ((d{1,2}):(d{1,2}))#s";
preg_match($pattern,$zeile,$result);
echo 'Datum: ' . $result[1] . '<br />';
echo 'Zeit: ' . $result[2] . '<br />';
echo 'Heimmannschaft: ' . htmlentities($result[3]) . '<br />';
echo 'Auswärtsmannschaft: ' . htmlentities($result[4]) . '<br />';
echo 'Tore Heim: ' . $result[5] . '<br />';
echo 'Tore Ausw: ' . $result[6] . '<br />';
echo 'Tore Heim Halbzeit: ' . $result[7] . '<br />';
echo 'Tore Ausw Halbzeit: ' . $result[8];
Es geht natürlich auch, die Zeile mit den Stringfunktionen zu zerlegen (substr und explode), würde aber mehrere Schritte benötigen. Stringfunktionen sind allerdings im Grunde performanter als Reguläre Ausdrücke.
__________________
The internet is full of answers, even to never asked questions!
|
13.11.2004, 11:35:29
|
Anfänger
|
|
Registriert seit: Nov 2004
Beiträge: 16
|
|
Hi, vielen Dank für die Hilfe.
Habe versucht den Code nachzuvollziehen, was mir nach einigem nachlesen auch größtenteils gelungen ist.
Wollte jetzt aber $zeile jeweils durch $bundesliga[1], $bundesliga[2] usw. ersetzen. Dies scheitert jedoch an einem "undefined offset error". Soweit ich das verstanden habe bedeutet das, dass der erhaltene Wert nicht dem erwarteten entspricht. Verstehe aber nicht ganz wieso, da ja echo die Zeilen auf diese Weise richtig ausgibt.
Wo liegt das Problem?
|
13.11.2004, 12:58:13
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Zitat:
Original geschrieben von faiZ
Hi, vielen Dank für die Hilfe.
Habe versucht den Code nachzuvollziehen, was mir nach einigem nachlesen auch größtenteils gelungen ist.
Wollte jetzt aber $zeile jeweils durch $bundesliga[1], $bundesliga[2] usw. ersetzen. Dies scheitert jedoch an einem "undefined offset error". Soweit ich das verstanden habe bedeutet das, dass der erhaltene Wert nicht dem erwarteten entspricht. Verstehe aber nicht ganz wieso, da ja echo die Zeilen auf diese Weise richtig ausgibt.
Wo liegt das Problem?
|
Zeige mal den Quelltext, mit dem du es versucht hast.
|
13.11.2004, 13:31:02
|
Anfänger
|
|
Registriert seit: Nov 2004
Beiträge: 16
|
|
PHP-Code:
$datei = "bundesliga2.txt";
$bundesliga = file($datei);
$pattern = "#(d{2}.d{2}.d{2}) (d{2}:d{2}) ([w.' ]+?) : ([w.' ]+?) (d{1,2}):(d{1,2}) ((d{1,2}):(d{1,2}))#s";
preg_match($pattern,$bundesliga[5],$result);
echo 'Datum: ' . $result[1] . '<br />';
echo 'Zeit: ' . $result[2] . '<br />';
echo 'Heimmannschaft: ' . htmlentities($result[3]) . '<br />';
echo 'Auswärtsmannschaft: ' . htmlentities($result[4]) . '<br />';
echo 'Tore Heim: ' . $result[5] . '<br />';
echo 'Tore Ausw: ' . $result[6] . '<br />';
echo 'Tore Heim Halbzeit: ' . $result[7] . '<br />';
echo 'Tore Ausw Halbzeit: ' . $result[8];
echo "<br>";
echo "$bundesliga[5]";//wird korrekt angezeigt
und die Fehlermeldung:
Notice: Undefined offset: 1 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 6
Datum:
Notice: Undefined offset: 2 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 7
Zeit:
Notice: Undefined offset: 3 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 8
Heimmannschaft:
Notice: Undefined offset: 4 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 9
Auswärtsmannschaft:
Notice: Undefined offset: 5 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 10
Tore Heim:
Notice: Undefined offset: 6 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 11
Tore Ausw:
Notice: Undefined offset: 7 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 12
Tore Heim Halbzeit:
Notice: Undefined offset: 8 in D:ProgrammeOmniSecurehtdocsprojektauslesen.php on line 13
Tore Ausw Halbzeit:
02.08.03 15:30 Bayer 04 Leverkusen : SC Freiburg 4:1 (3:1)
|
13.11.2004, 13:51:46
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Das Muster, nach welchem du suchen lässt, findet in deiner Zeile keine Ergebnisse.
Ich habe dir das mal überarbeitet:
Code:
$pattern = '#(d{2}.d{2}.d{2})s+(d{1,2}:d{2})s+(.+)s*:s*(.+)(d{1,2}):(d{1,2})s+((d{1,2}):(d{1,2}))#i';
EDIT: Wieso rutscht das Semikolon in die nächste Zeile?!
|
13.11.2004, 14:27:18
|
Anfänger
|
|
Registriert seit: Nov 2004
Beiträge: 16
|
|
Ich bin mir nicht sicher ob das Muster wirklich die Ursache des Problems ist.
Denn wenn ich mit
PHP-Code:
$zeile = "03.08.03 17:30 Hansa Rostock : VfB Stuttgart 0:2 (0:0)";
arbeite funktioniert das bisherige Muster wunderbar, wenn ich jedoch
PHP-Code:
$zeile = "bundesliga[9];"
setze tritt der offset Fehler auf.
Wenn ich das von dir erstellte Muster nehme tritt der Fehler in beiden Fällen auf :/
|
13.11.2004, 15:27:05
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Zitat:
Original geschrieben von faiZ
Ich bin mir nicht sicher ob das Muster wirklich die Ursache des Problems ist.
|
Es liegt so gut wie sicher an dem Muster. Deine Warnung bedeutet ja nichts weiter, als das ein bestimmtes Element nicht in dem Array $result gefunden wurde. Dieses Array wird aber durch die Funktion preg_match erzeugt. Wenn das in preg_match angegebene Suchmuster nun nicht gefunden wurde, wird $result einfach als leeres Array zurückgegeben und liefert somit die Offset-Notiz.
Zitat:
wenn ich jedoch
PHP-Code:
$zeile = "bundesliga[9];"
setze tritt der offset Fehler auf.
|
Diese Zeile müsste wenn dann so aussehen:
PHP-Code:
<?php
$zeile = $bundesliga[9];
?>
Aber auch wenn du es so schreibst, wird dir ein Fehler zurückgeliefert werden, da das Array $bundesliga nur 9 Elemente (von 0 bis 8) hat.
Zitat:
Wenn ich das von dir erstellte Muster nehme tritt der Fehler in beiden Fällen auf :/
|
Folgende Zeile funktioniert bei meinem Muster ohne Probleme:
PHP-Code:
<?php
$zeile = "03.08.03 17:30 Hansa Rostock : VfB Stuttgart 0:2 (0:0)";
?>
Geändert von xabbuh (13.11.2004 um 15:35:33 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:01:07 Uhr.
|