XBOX 360 Gamercard

Maik Müller

Grünschnabel
Guten Tag alle zusammen,

ich habe dort mehere Fragen, die mir Google und diese SuFu hier nicht beantworten können. Vieleicht gibt es einen, der davon mehr versteht als ich. Es geht um eine XBOX 360 Gamercard. Diese kann man direkt von der XBOX Webseite per iFrame generieren lassen und diese dann einzubinden.

Da ich mich nun versteift habe, diese Gamercard selber per PHP als Bild zu machen, bedeutet dies, das ich normalerweise eine XML Ausgabe brauch. Diese gibt es laut Microsoft nur für Premium Mitglieder. Leider bin ich es nicht.

Meine Frage wäre nun, kann mir einer erklären, wie ich am besten diese Ausgabe:
http://gamercard.xbox.com/de-DE/ATZEONE87.card

in einzelnen Werten in PHP zb. in Variablen benutzen kann? Beispiel:
Diese Webseite oben in einer PHP Datei in Variablen laden. Von PHP habe ich nur ca 50% Ahnung. Also das wichtigste.

Oder kennt jemand eine XBOX Gamercard Klasse die man sich besorgen/downloaden kann?
 
Vielen Dank für deine Antwort, aber da muss ich dir gestehen, ich kenn die Funktion nur diese Ausdrücke sind für mich nicht leicht zu verstehen.
 
Hi,

es gibt im Netz hunderte von Tutorials zu regulären Ausdrücken, da hilft dir Google weiter. Versuch es am besten erstmal selbst und wenn du was hast, können wir dir hier auch helfen.

Ein Tipp noch: Dich interessieren in der Regel die Inhalte der einzelnen HTML-Tags. Glücklicherweise sind die meisten auch noch mit einem Attribut benannt. Danach könnte man z.B. suchen :)

Best regards
 
Hallo, also ich habe nun mal rumprobiert. Wenn ich das versuche:

PHP:
<?php

$_gamercard = file_get_contents('http://gamercard.xbox.com/de-DE/ATZEONE87.card');
echo preg_replace('/(<div id="Gamerscore">.+?)+(<\/div>)/i', "\\1", $_gamercard);

?>

Bekomme ich den Kompletten HTML Code ausgeworfen. Ich möchte nur das
PHP:
<div id="Gamerscore">54125</div>

Nur die Zahl 54125 ausgegeben wird. Aber irgendwie funktioniert das nicht. Ich sagte ja nicht meine Stärke. Egal was ich probiere es kommen nur HTML Code raus.
 
Hallo,

preg_match() und preg_match_all() sollten dir weiterhelfen.
Außerdem musst du an deinem Suchmuster noch etwas arbeiten. Mal ein Beispiel:
PHP:
<html>
<head><title>Test</title></head>
<body>
<?php

$matches  = null;
$file     = file_get_contents("http://gamercard.xbox.com/de-DE/ATZEONE87.card");
$pattern = "/<div id=\"(.+)\">(.+)<\/div>/iU";

preg_match_all($pattern, $file, $matches);

for($i = 0; $i < count($matches[1]); $i++)
{
	echo "<pre>" . $matches[1][$i] . " - " . $matches[2][$i] . "</pre><br />\n";
}

?>
</body>
</html>

Ausgabe:
Code:
Gamerscore - 1145


Location - Berlin


Name - Maik Müller
 
Hallo, danke für deine Antwort. Es ist mir hinsichtlich peinlich, wenn ich dir sage, trotz bemühungen keine Möglichkeit finde, mich damit auseinander zusetzen. Reguläre Ausdrücke sind ein für mich sehr schwieriges Thema.

Aber irgendwie verstehe ich den Code nur zur hälft, vorallem den Ausdruck. Kannst du mir das mal näher erklären?

Denn ich komme irgendwie nicht zurecht. Ich möchte folgendes aus dem HTML Code auslesen:
- alle <span id=""> (Alle Spiele)
- alle <div id=""> (wie Name, Score, Bio, Motto, Gamertag Name etc...
- Rep Tags
- Spielerbild etc...

aber irgendwie komm ich nicht zurecht.
 
Zuletzt bearbeitet:
Alle in (runden) Klammern stehenden Ausdrücke werden in den Ergebnissen aufgeführt. Das sind also die Sachen, die du herausfiltern möchtest. Der oben genannte Ausdruck macht nichts anderes, als dir alle id's und den Content von div-Layern herauszufiltern, die dem Muster
Code:
<div id="ID">CONTENT</div>
genügen. Die pattern modifier sind dafür da, dass die Unterscheidung zwischen Groß- und Kleinschreibung wegfällt (i) und ungierig (= ungreedy = U) gesucht wird. Wie preg_match_all() funktioniert, kannst du ja der Doku entnehmen.
 
In meiner Signatur ist ein Online-Regex-Tester verlinkt, damit -und mit einer Beschreibung von RegExp- hat man viel Spaß. ;) Habe ich zumindest..

Kleiner Tip, laß greedy/nongreedy (U) weg und unterscheide syntaktisch zB (.*?) anstatt (.*) Achja, bau nicht gleich komplexe RegExp-Pattern, mit denen Du in einem Abwasch alles auslesen möchtest, das führt nur zu Frust ob der Komplexität. Laß einfach mehrere einfache Pattern rüberlaufen und zieh nach und nach die Daten raus, sie liegen nach dem get_contents() eh im Speicher und rennen nicht weg.

mfg chmee
 
Zuletzt bearbeitet:
Hier nun die folgenden Ausgaben:

Code:
Array ( [Gamerscore] => 1145
[Location] => Berlin
[Motto] =>
[Name] => Maik Mülle
 [Bio] => 
)

Array ( [Title] => Burnout Paradise
 [LastPlayed] => 22.07.2011 
[EarnedGamerscore] => 0 
[AvailableGamerscore] => 1250 
[EarnedAchievements] => 0 
[AvailableAchievements] => 60 
[PercentageComplete] => 0% 
)

Das Macht er soweit richtig, nur bei dem 2. Array sind nur 1mal Daten, obwohl die letzten 5 Spiele auslesen möchte.
 
Zurück