XML on-the-fly lesen geht nicht, statisch funktioniert alles bestens!

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

  • XML on-the-fly lesen geht nicht, statisch funktioniert alles bestens!

    Hey ho!

    Ich beschäftige mich momentan mit PHPSysInfo, einem Programm welches Informationen des Servers ermittelt.

    U.a. wird eine XML mit den Daten generiert - diese möchte ich auslesen - geht aber nicht!

    Wie man eine XML Datei richtig ausliest, weiß ich eigentlich. Wenn ich die generierte Datei kopiere und umbennene, ist das alles kein Problem.

    Ich glaube es liegt daran, dass mein Script versucht die Datei während des Generierens auszulesen.

    Gibt es in PHP eine Funktion die eine Datei auf "Fertigstellung" prüft?

    Mir fällt nichts anderes ein als ständig die filesize zu prüfen, bis der Wert sich nicht mehr verändert. Das ist aber verdammt dreckig.

    Gruß
    carapau
    Lasst euch nicht lumpen, hoch den Humpen!

  • #2
    Ich nehme an, dass Dateien während sie beschrieben werden schreibgeschützt sind. Du könntest also mit is_writeable() prüfen, ob die Datei beschreibbar ist und daraus ableiten, dass sie nun nicht mehr weiter befüllt wird.

    Edit: Allerdings können wir auch nur begrenzt Hellsehen. Was genau bekommst du denn für Fehlermeldungen!?
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Original geschrieben von unset
      Ich nehme an, dass Dateien während sie beschrieben werden schreibgeschützt sind. Du könntest also mit is_writeable() prüfen, ob die Datei beschreibbar ist und daraus ableiten, dass sie nun nicht mehr weiter befüllt wird.

      Edit: Allerdings können wir auch nur begrenzt Hellsehen. Was genau bekommst du denn für Fehlermeldungen!?

      Hmm, geht nicht.

      Hier der Fehler:
      Code:
      Warning: simplexml_load_file() [function.simplexml-load-file]: phpsysinfo/xml.php:84: parser error : Start tag expected, '<' not found
      Soll glaub ich heißen, dass das XML noch nicht generiert wurde...

      Hier der Code:
      PHP-Code:
      $xmlFile "xml.php";
      if(
      file_exists($xmlFile)) 
      {
         echo 
      $xmlFile." exists!"
         
         
      $loop true;
         while(
      $loop) {
             if(
      is_writeable($xmlFile)) {
                 
      $loop false;
                 
      $xml simplexml_load_string($xmlFile);
             echo 
      $xml->Vitals->Hostname[0];
             } else {
                 echo 
      "nicht writable!<br>";
             }
         }  

      else 
      {
          echo 
      $xmlFile." does not exist!";

      Lasst euch nicht lumpen, hoch den Humpen!

      Kommentar


      • #4
        Wahrscheinlich wird die XML-Datei erst irgendwann Richtung Ende des Programms geschrieben. Du kannst ja mal ein sleep einbauen und per Hand prüfen, ob die Datei während dieser Zeit noch leer ist. Ist dies der Fall, musst du deinen Leseversuch nach dem Schreiben der Datei starten. Wann die Datei geschrieben wird, musst du dann natürlich herausfinden.

        Kommentar

        Lädt...
        X