Christian: Mit PHP XML-Datei auslesen bzw. schreiben

Hallo,
ich habe vor eine Bookmark-Funktion auf meiner Seite zu erstellen dies will ich volgendermaßen realisieren:

Wenn der User einen Bookmark erstellt wir mit hilfe von JavaScript ein Cookie mit einer id gesetzt der den User identifizieren soll.
Die Daten die den Bookmark beschreiben sollen allerdings auf dem Server gespeichert werden, da mir der Cookie Speicherplatz wahrscheinlich nicht ausreichen wird.
Die Datei die die Bookmarks enthält soll wahrscheinlich eine XML Datei werden.

Was ich nun will ist in diese Datei via PHP zu schreiben und natürlch auch auslesen. Es wäre schön wenn die Tags und deren Werte z.B. in ein Array geschrieben werden. Gibt es sowas? Und kann ich in die Datei auch Werte wieder einfügen?

  1. Hallo, Christian,

    ich habe vor eine Bookmark-Funktion auf meiner Seite zu erstellen dies will ich volgendermaßen realisieren:

    Wenn der User einen Bookmark erstellt wir mit hilfe von JavaScript ein Cookie mit einer id gesetzt der den User identifizieren soll.

    Wenn du sowieso die Verwaltung serverseitig organisierst, würde ich den Cookie auch gewohnt über HTTP setzen, denn du musst damit rechnen, dass der Benutzer a) JavaScript deaktiviert hat, b) das setzen von Cookies per JavaScript deaktiviert hat und c) dass (permanente und Session-) Cookies generell deaktiviert sind.
    Im letzteren Falle würde dein System fehlschlagen. Im Übrigen lassen sich bare IDs wunderbar fälschen.

    Die Datei die die Bookmarks enthält soll wahrscheinlich eine XML Datei werden.
    Was ich nun will ist in diese Datei via PHP zu schreiben und natürlch auch auslesen. Es wäre schön wenn die Tags und deren Werte z.B. in ein Array geschrieben werden. Gibt es sowas? Und kann ich in die Datei auch Werte wieder einfügen?

    Nun, für diesen Fall würde ich dir PCRE-Funktionen http://de.php.net/manual/de/ref.pcre.php empfehlen, um die Elementinhalte einzulesen, das ist das Einfachste. Wenn du nicht unbedingt (menschenlesbares) XML benutzen willst, kannst du auch einfach die Werte und Datensätze mit Trennzeichen im String auseinanderseparieren, dann kannst du wunderbar mit explode() den String in einen Array umwandeln (Schleife für Unterarrays benutzen!), ebenso einfach geht das Abspeichern von statten.

    Naheliegend wäre das PHP-Modul DOMXML http://www.php.net/manual/de/ref.domxml.php, aber damit kann man momentan noch nicht arbeiten, da es noch in der Entwicklung ist, ich bin auch schon daran gescheitert, siehe http://forum.de.selfhtml.org/archiv/2002/10/25815/#m141109.
    Andere Bibliotheken sind mir nicht bekannt, danach solltest du aber Ausschau halten. Da werden dir sicher noch andere hier Tipps geben können.

    Grüße,
    Mathias

    1. Hallo christian,

      zuerst ma danke für deine hilfe...

      ich versuche es nun mit fsockopen... :)

      MFG Marco

      1. Hallo, Marco.

        Hallo christian,

        Naja, eigentlich heiße ich Mathias, manchmal auch Marius, Lars, Jonas oder Maximilian, aber wenn du mich Christian nennen möchtest... meinetwegen, ich gebe da nicht viel drauf... von der Wortbedeutung einmal abgesehen. ;)

        zuerst ma danke für deine hilfe...

        You're welcome... bezüglich was auch immer. ;)

        ich versuche es nun mit fsockopen... :)

        Wenn du es schaffst, damit ein XML-Dokument in einen Elementbaum-Array einzulesen und es wieder als String zu speichern, würde ich das einen genialen Hack nennen. ;)

        Ähm - kann es sein, dass du im falschen Thread gelandet bist...? (</?m=152739&t=28173> - dort gab es auch auch keinen Christian. ;))

        Grüße,
        Mathias

    2. Hallo Mathias,

      Naheliegend wäre das PHP-Modul DOMXML http://www.php.net/manual/de/ref.domxml.php,

      Da muss ich Dir widersprechen. Für diese Aufgabenstellung (Bookmarks) schreit es geradezu nach WDDX. Und die WDDX-Funktionen sind wirklich ausgereift.

      Grüße,

      Christian
      http://www.php.net/manual/en/ref.wddx.php

  2. Hallo Christian,

    Was ich nun will ist in diese Datei via PHP zu schreiben und natürlch auch auslesen. Es wäre schön wenn die Tags und deren Werte z.B. in ein Array geschrieben werden. Gibt es sowas? Und kann ich in die Datei auch Werte wieder einfügen?

    Für das Lesen kann ich Dir eine Klasse empfehlen, die genau das macht, was Du willst, nämlich das xml in ein Array zu packen:
    http://www.hansanderson.com/php/xml/

    Für das Schreiben mußt Du dann den Quelltext ja nur noch rückwärts lesen ;-).

    Viele Grüße
    Stephan