komplexe Datei auslesen

torstenhesener

Grünschnabel
Hallo zusammen.

Erstmal vorweg: Ich bin kein php und mysql Profi, aber ich bin dabei, mich an die Sprachen zu gewöhnen (habe andere Programmiererfahrungen)!

So - jetzt zu meinem Problem:

Ich möchte eine Datenbank erstellen, welche Informationen über Spionageberichte von einem Browsergame beinhaltet. Da diese Spionageberichte nur 14 Tage gültig sind will ich diese Berichte auslesen und die einzelnen Werte in einem Datensatz einer Tabelle speichern.

Das Problem, welches ich jetzt habe liegt am auslesen dieser Datei. Hier ein Beispiel:

http://www.spacenations.de/cgi-bin/spio.pl?sid=TOELVZNBULZERHGM&mkey=HYUIWFDLAZZSYJBF

Ich möchte hier alle Informationen auslesen:
Angefangen vom Planetennamen, Koordinaten, Spielernamen, Datum, Uhrzeit, Resourcen, Gebäude, Forschung, Verteidigung, Flotten, ....

Kann mir hierbei jemand weiterhelfen?

Bin für jede Info dankbar

Gruß

Torsten
 
Evtl. hilft dir dieser Code weiter:
PHP:
$s='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Spacenations - Spionagebericht</title><link rel="shortcut icon" href="/favicon.ico">.....</td></tr><tr><td>Sauerstoff</td><td>0</td></tr><tr><td>Wasserstoff</td><td>6.836</td></tr></table><table border=0><tr><th colspan=2>Planeteneigenschaften</th></tr><tr><td>Spionieren</td><td>ziemlich schwer (8)</td></tr><tr><td>Kolonisieren</td><td>sehr schwer (9)</td></tr><tr><td>Recyclen</td><td>schwer (7)</td></tr><tr><td>Tarnen</td><td>schwer (7)</td></tr></table></body></html>';

$s=strip_tags($s,'<td>');
print_r(explode('</td><td>',preg_replace('/<td[^\>]*>/','<td>',$s)));

$s initialisierst Du mit dem Quelltext der Seite.

Marcus
 
Zuletzt bearbeitet:
Hilft mir auf jeden Fall schonmal weiter!
Danke schonmal!

Kannst du ganz kurz erklären, was dieser Code wirklich macht (um ihn zu perfektionieren)!

Kennt jmd ein Script (Befehl?) welches den Inhalt einer Datei in eine Variable speichert?
 
Striptags entfernt alle HTML-Tags aus dem code, außer <td> und </td>
Das Preg_replace ersetzt alle <td colspan...> oder <td class...> durch einfache <td>-Tags.
explode erzeugt dann aus diesem Text ein Array, indem es den Text nach '</td><td>' durchsucht und an diesen Stellen in Array-Elemente auftrennt.
print_r gibt dir dann nur noch das Array aus.

Du kannst Dir z.B. mit fsock_open und fread den Text direkt vom Server laden.
Schau dazu mal in die Doku. Es kann aber sein, dass Du durch das Login, welches Du sicherlich vorher durchführen must, Probleme bekommst.

Marcus.
 
torstenhesener hat gesagt.:
Kennt jmd ein Script (Befehl?) welches den Inhalt einer Datei in eine Variable speichert?
PHP:
$url = 'http://www.spacenations.de/cgi-bin/spio.pl?sid=TOELVZNBULZERHGM&mkey=HYUIWFDLAZZSYJBF';
// Als zeilenweises Array:
    $array = file($url);
// Oder als String:
    $string = implode('',file($url));
 
Anstatt des file()-implode()-Konstrukts kann auch gleich die file_get_contents()-Funktion benutzt werden.
 
PHP:
$url = 'http://www.spacenations.de/cgi-bin/spio.pl?sid=TOELVZNBULZERHGM&mkey=HYUIWFDLAZZSYJBF'; 
$s=html_entities_decode(file_get_contents($url));
$s=strip_tags($s,'<td>'); 
$s=preg_replace('/<td[^\>]*>/','<td>',$s);
$a=explode('</td><td>',$s);
print_r($a);
 
Zurück