Ankündigung

Einklappen
Keine Ankündigung bisher.

WoW Armory - PHP <-> XML-Parser

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • WoW Armory - PHP <-> XML-Parser

    Hallo liebe Community,
    ich weiß es wurde hier sicherlich schon oft angesprochen. Die Suchfunktion und Google-Suche ist mir wohl bekannt, jedoch treten funktionniert mein Script immernoch nicht. So ihr wisst nun natürlich noch nicht einmal, um was es sich bei meinem Problem handelt. Ich würde gerne auf die XML-Datei des Arsenals von Blizzard's World of Warcraft (armory.wow-europe.com) zugreifen, um gewisse Charakterdaten zu erhalten. Ich habe versucht einen eigenen Parser zu schreiben, jedoch ist mir dies nicht ganz gelungen. Ich bin im Internet dann auf ein gutes Script gestoßen, was, ich vermute er benutzt bei seiner Homepage das Selbe, ohne Probleme funktionniert. An was könnte es liegen. Bei mir wird nichts angezeigt. Keine Fehler, Keine "echo"-Anweisung...NICHTS!!!. Ich habe auch schon einmal ein bisschen mit verschiedenen "User-Agenten" herumgespielt oder liegt es vielleicht an meinem Server. Ich wäre euch zu tiefstem Dank verpflichtet, wenn ihr mir helfen könntet.

    Hier der Code, ohne den geht ja gar nichts:
    PHP-Code:
    # UserAgent setzen
    $useragent "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.6)
    Gecko/20040206 Firefox/1.0.1"
    ;
    ini_set('user_agent',$useragent);
    header('Content-Type: text/html; charset=utf-8');
     
     
    # URL vorbereiten
    $URL
    "http://eu.wowarmory.com/character-sheet.xml?r=Echsenkessel&n=Ariliao";
     
    # CURL initialisieren und XML-Datei laden
    $curl curl_init();
     
    curl_setopt ($curlCURLOPT_URL$URL);
    curl_setopt($curlCURLOPT_USERAGENT$useragent);
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
     
    $load curl_exec($curl);
     
    curl_close($curl);
     
    # eingelesenen String zu SimpleXMLElement umformen
    $xml = new SimpleXMLElement($load);
     
    # Namen und Level des eingelesenen Charakters ausgeben

    echo $xml->characterInfo->character['name']." hat das
    Level "
    .$xml->characterInfo->character['level']; 
    (Quelle: Armory + PHP - Teil 1: XML einlesen, Onlinestatus, einfache Ausgabe, Charakterdaten | blog.skyfighter.net - world of warcraft blog)


  • #2
    evtl. header einstellen? ( CURLOPT_HTTPHEADER )

    Kommentar


    • #3
      Wenn kein Echo ausgegeben wird,
      kommt bei dir wohl ein Fatal/syntax error der das Skript abbricht.

      Kommentar


      • #4
        Versuchs mal mit error_reporting und schau was bei rauskommt
        evt. hilft das weiter

        Kommentar


        • #5
          Also mich würde mal interessieren, was raus kommt, falls du echo $load; und print_r($xml->characterInfo->character) machst. (Nicht die Browserausgabe anschauen, sondern den gesendeten Quelltext. (Im Firefox Strg+u))

          PS:
          $useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.6)
          Gecko/20040206 Firefox/1.0.1";
          Firefox 1.0.1 ist auch schon etwas älter. So würde das modern heißen:
          User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)
          mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
          PHP-Code:
          echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

          Kommentar


          • #6
            hi

            also ich baue auch gerade eine gildenhp und wolte eine memberliste erstellen um den weg zu umgehen immer wieder die liste zu ueberarbeiten lese ich die daten aus dem arsenal aus.

            das sieht bei mir so aus:
            PHP-Code:
            <?php
            ini_set
            ("user_agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 

            $xml = new SimpleXMLElement(file_get_contents('http://eu.wowarmory.com/guild-info.xml?r=Frostwolf&gn=Gute+Reise'));


            foreach (
            $xml->guildInfo->guild->members->character as $member){
                if (
            $member['classId'] == 1){
                    echo 
            $member['name'];
                    echo 
            "<br />";
                }
            }
            ?>
            klappt einwandfrei!

            Kommentar

            Lädt...
            X