PHP - Error beim parsen

  • Hey :),


    hab grad voller Vorfreude mir einen webspace+domain bei one.com geholt und dann die daten hochgeladen via FTP.
    Die Page www.letsrace.org wird auch angezeigt bloß läuft die kernfunktion (server viewer) : www.letsrace.org/serverlist.php nicht <:
    Auf dem alten Host lief dies ohne Probleme, ich hab mal hier die phpinfo datei vom neuem server : www.letsrace.org/phpinfo.php
    Und hier der PHP Code :


    FOpen ist doch an, warum funzst dann nicht ?
    Und so siehts auf dem alten host aus : http://wswracelist.webege.com/serverlist.php und dessen phpinfo datei : www.wswracelist.webege.com/phpinfo.php


    Hoffe ihr könnt mir helfen, hab da leider echt keine lust mehr darauf :(


    Gruß


    // Ich mein den Error : Service of out order in Zeile 11

  • Ok dann such ich mal nach dieser <;D



    rror_append_string no value no value
    error_log no value no value
    error_prepend_string no value no value
    error_reporting 22519


    Muss ich wohl die php.ini ändern damit ich überhaupt den error.log bekomm
    // ok hab den php error log über die one.com page aktiviert, kann bis 15min dauern bis die einstellung übernommen wird ;

  • Er sagt dir doch was falsch ist.
    trim() erwartet einen String du übergibst aber eine Resource, ergo kann es gar nicht klappen. Du musst wenn dann Daten aus der $file lesen als String und die dann trimmen.

  • Ok hört sich shconmal gut an, Danke auch.


    Werde es gleich mal probieren, aber warum funktioniert dann der genau gleiche code auf dem anderen host ?


    // Grad bemerkt dass der error ja auf der page dort steht; danke kokspflanze davor war er ja nicht zu sehen ^^

  • Okk, dann lass ich das lieber ganz und bleibe dann nicht abhängig von der http://dpmaster.deathmask.net/?game=warsow seite sondern mache es mal neu für mich durch sowas http://sourceforge.net/projects/gameq/?source=recommended


    Trotzdem Danke und werde mich natürlich auch wieder melden :)


    // Wolllt mich grad dran machen, hab aber bemerkt dass ich dafür einen vServer brauch <:


    Der Grund warum der Code wohl nicht unterstützt wird ist, dass der alte Webhost PHP 5.2.17 und der neue 5.3.23 besitzt.


    Muss ich wohl den Code also so umschreiben dass der die Daten aus der $file als String liest und diese dann trimmt ?


    Hui das kann was werden; kann mir wer sagen welche cmds ich da nutzen muss ? Hab in PHP nicht wirklich Ahnung, bin da nur die basics durchgegangen um das obrige Script an meine Bedürfnisse anpassen zu können und es ein wenig zu kapieren.



    Danke und Gruß

  • Diese Deathmask-Seite unterstützt auch XML was das auslesen extrem vereinfacht. Warum das HTML parsen, wenns auch XML gibt ..?




    PS: Demo: http://aoni.project-hazard.org/deathmask-stats.php


    Gruß
    florian0

  • Wow ! Vielen Dank !
    Ja wie gesagt hab ich da noch nicht so viel Ahnung, ich wusste davor nur dass man mit PHP Seiten parsen kann und dann ging ich auf die Abenteuer Reise unter anderem auch mit Googles Hilfe.


    Aber nochmals vielen Dank, hab heut Abend leider keine Zeit mehr, werde mich aber daran morgen versuchen :)


    lalalol'ed


    //


    Yeeeeeaayyayaya danke vielmals für diesen Beispiel code :)


    Die Kernfunktion (Die Anzeige von den Spielern die auf dem Server sind, konntest du aber auch nicht wissen da der Beispiel Server (ACC-Private) ein PW server war und somit selten spieler drauf hat) hatte dein Code leider nicht, konnte es aber dann selbst raus finden :


    PHP
    1. <?php
    2. $url = "http://dpmaster.deathmask.net/?game=warsow&server=198.199.125.100:44400&xml=1";
    3. // Dokument vom Server holen
    4. $xml = simplexml_load_file($url);
    5. // Auf die Server-Node "wechseln"
    6. foreach ($xml->server->players->player as $player) {
    7. // Diverse Infos easy ausgeben
    8. echo $player->name, "<br />";
    9. }
    10. ?>


    So kommts dann raus : http://letsrace.org/phptest.php


    Nun nur noch in die Page einbinden <3


    Also nochmals vielen Dank an alle hier :)


    // Funktioniert perfekt : www.letsrace.org/serverlist.php bloß ein wenig langsam, liegt das am Host ? Hab das 1 jährige kostenlose Paket von www.one.com


    Gruß :)

  • Naja du führst immerhin 10 Requests pro Seitenaufruf auf. Das is schon ein bissel aufwendig. Aber nicht so aufwending, dass die Seite 12 Sekunden zum Laden brauchen sollte. Vielleicht wird das limitiert?
    Hast du CronJobs? Dann könntest du z.B. alle Minute die Server abfragen und das Ergebniss zwischenspeichern.
    (Wenn du nicht total auf 100% genauigkeit stehst)


    Gruß
    florian0

  • Hmm sollte schon live sein, und max. im 30sek Takt abgespeichert werden ..


    Könntest du es mal auf deinem Webhost probieren, wenn du willst und Lust dazu hast ?
    Brauchst ja nur die serverlist.php und letsrace.css drauf zu tun :)


    WinRAR-Archiv--neu-.rar


    Danke :)


  • http://aoni.project-hazard.org/serverlist.php
    Bei mir isses auch net sonderlich schneller ...


    Bei diesem Deathmask kann man auch einen MasterServer angeben ... ich kenn mich mit Warsow nicht aus. Hast du eventuell sowas? Dann könnte man darüber alle Server auf einmal abrufen, das würde wesentlich schneller gehen.

  • Nunja das mit dem Masterserver läuft so ab, dass ich einen vServer bräuchte um mit diesem dann mit einem script zB ( QStat ) abrufen zu können.


    Da aber ein vServer eher nicht in Frage kommt, hab ich mal nem mate die source geschickt damit er da mal nach dreckigen oder ineffizienten Sachen schauen kann.


    Trotzdem vielen Dank, werden ja sehen wie es ausgehen wird ^^


    Gruß


    lalalol'ed

  • So. Hab mim Kumpel ne neue Version entworfen. Braucht CURL, ist laut phpinfo auf deinem Server vorhanden.
    http://aoni.project-hazard.org/serverlist_opt.php


    Das ganze läuft über CURL und Multi-Requests, also mehrere Requests zur selben Zeit (statt wie bei simplexml einer nach dem anderen).


    Prinzipell musst du nur eine weitere ServerIP in die Liste eintragen. Danach kannst du über $server['ip:port'] auf das SimpleXML Objekt zugreifen und wie gehabt damit arbeiten.


    Ganz optimal is die Lösung auch nicht ... aber ein Fortschritt. Man könnte auch, nachdem alle Request durch sind, alle Serverdaten in ein XML-Dokument stopfen, und dass dann mit simplexml parsen. Aber ob das schneller wäre?

  • Wow, einfach nur wow und Danke :O


    Eigentlich mag ich es ja nicht wenn User wollen dass, ihre eigenen Aufgaben komplett von anderen gemacht werden. Wollte ich ja auch nicht, eigentlich wollte ich nur die jeweilligen cmds und Anhaltspunkte wissen um mir später wieder selbst was zu basteln^^


    Abbbber viiieeeelen Dank, dass du und dein Kumpel das gemacht haben :) Keine Ahnung wie ich euch danken soll, nichts desto trotz hoffe ich wenigstens dass es euch Spaß gemacht hat und keine Hürde für euch war :)


    Auch wenn die Lösung, wie du meinst, noch nicht ganz optimal sei, was eigentlich eh nichts sein kann, läuft diese wirklich sehr schnell und damit sehr zufriedenstellend :)


    Ich werde mir im Laufe des Abends mal das Script anschauen und es versuchen zu verstehen.


    Danke !


    //Noch eine Frage, wie hast du den Code so formatiert bekommen ?
    Ich nutz grad Notepadd++ und da kann ich nur normal Enter machen ohne solche extra Absätze :O


    Und wenn du willst kann ich dich gerne noch als Mithelfer-Developer in der Page eintragen. (StageTwo is ja eh schon drinne :P )

  • Für WebEntwicklungs-Kram verwende ich NetBeans. Kann alles.


    Notepad++ kann aber meines Wissens auch automatisch einrücken ... meins zumindest.
    Man muss eben einmal manuell mit Tab einrücken, danach rückt es automatisch ein.


    Edit: Die Seite hat einen Bug. Wenn jemand ein ^ im Namen hat ohne Nummer dran, also kein Farbcode, gibts fail.
    Am besten den Parameter xmlcarots=1 an die URL hängen. Dann isses zwar netmehr so bunt, aber immernoch besser als ne Fehlermeldung.


    Edit2: Hab mal mit Willis (dem Admin der Seite) gesprochen. Der sagt er fixt es, zur Zeit geht garnix mehr :D


    Gruß
    florian0