XBOX 360 Gamercard

PHP:
<?php

$file = file_get_contents('http://gamercard.xbox.com/de-DE/ATZEONE87.card');
$matches  = null;

preg_match_all("/<div id=\"(.*?)\">(.*?)<\/div>/iU", $file, $matches);

for ($i = 0; $i < count($matches[1]); $i ++) {
   $_div[$matches[1][$i]] = $matches[2][$i];
}

print_r($_div);


preg_match_all("/<span class=\"(.*?)\">(.*?)<\/span>/iU", $file, $matches);

for ($i = 0; $i < count($matches[1]); $i ++) {
   $_span[$matches[1][$i]] = $matches[2][$i];
}

print_r($_span);
?>
 
Zuletzt bearbeitet:
Die Variable $matches taucht mehrfach falsch geschrieben als $matchs auf. Den pattern modifier U solltest du auch weglassen, weil du mit dem Fragenzeichen in den Quantifikatoren die Wirkung umkehrst.
 
Das habe ich schon korrigiert. Es ist nur weiterhin das Problem, das die ich Span ID Ausgabe nur 1 mal bekomme. Es sind aber im Quellcode 5 Spiele aufgelistet.
 
Noch ein Tip am Rande - für den Fall:

Wenn Du diese Daten auf einer Seite benutzt, für zB Deinen Clan/Community etc.. Kümmer Dich darum, jene auf dem Server -nachdem Du sie ausgelesen hast- lokal abzuspeichern - laß sie abhängig vom Datum des letzten Auslesevorgangs aktualisieren. (fast) Nichts ist schlimmer als eine stockende Seite, weil irgendwelche extern liegenden Daten nicht/kaum greifbar sind..

mfg chmee
 
PHP:
<?php 
$string = file_get_contents("gamercard.xbox.com/de-DE/ATZEONE87.card"); 
// or PHP CURL 
$regex = "/<span class=\"(.*?)\">(.*?)<\/span>/i"; 
preg_match_all ($regex, $string, $output);
var_dump($output); 
?>
..funktioniert bei mir .. 5 Spiele zu 7 Einträgen

p.s.: In Deinem Code überschreibst Du ja ständig die Daten, wenn Du mehrmals das Array-Feld 'Title' beschreibst, kein Wunder ;)

mfg chmee
 
Zuletzt bearbeitet:
Probier mal

PHP:
<?php

$file = file_get_contents('http://gamercard.xbox.com/de-DE/ATZEONE87.card');
$matches  = null;

preg_match_all("/<div id=\"(.*?)\">(.*?)<\/div>/iU", $file, $matches);

for ($i = 0; $i < count($matches[1]); $i ++) {
   $_div[][$matches[1][$i]] = $matches[2][$i];
}

print_r($_div);


preg_match_all("/<span class=\"(.*?)\">(.*?)<\/span>/iU", $file, $matches);

for ($i = 0; $i < count($matches[1]); $i ++) {
   $_span[][$matches[1][$i]] = $matches[2][$i];
}

print_r($_span);
?>
 
PHP:
for ($i = 0; $i < count($matches[1]); $i ++) {
   $_span[][$matches[1][$i]] = $matches[2][$i];
}
Hier liegt der Fehler begraben! Mehrmaliges Beschreiben gleicher "assoziativer" Felder. Wenn wir davon ausgehen, dass ein Spiel immer 7 Felder hat, dann sollte es so aussehen:

PHP:
for ($i = 0; $i < count(matches[1]); $i ++) {
   $_game=intval($i/7); # eben nicht MOD :)
   $_span[$_game][$matches[1][$i]] = $matches[2][$i];
}
echo"<pre>";
var_dump($_span);
echo"</pre>";
Fehler behoben.. nicht modula sondern Ganzzahl aus einer Division.

mfg chmee
 
Zuletzt bearbeitet:
Ah, mensch richtig. Ich habe jetzt mal mit ein paar Array rumprobiert, und musste feststellen, das ich immer gleiche Werte im array hatte. Da erstmal durchblicken.

Das Problem ist nun soweit gelöst, nun muss ich die anderen Einträge noch rausholen und habe alles was ich brauchte. Vielen dank chmee. Bin noch in der Lernphase, lerne aber schnell ;)

Jetzt wird nur das Zugreifen auf die Bestimmten Einträge problematisch, aber ich probiers mal...
Habs aber geschafft.
 
Zuletzt bearbeitet:
Vielen Dank für eure Hilfen. Habe es ganz gut hinbekommen. Danke für den Tipp mit dem zwischen speichern des Bildes. So wird die Last des Servers und die Seiten indem es eingebunden wird vermindert. Habe hier mal eine Demo zum testen: http://gamercard.kr3w.de/ Bitte um Feedback.
 

Neue Beiträge

Zurück