Dennis: XML-Datei erstellen

Beitrag lesen

Hi Carsten.Sch.,

flock(LOCK_SH...) dann fopen(..., w+)

Es hat schon seinen Sinn, warum ich LOCK_EX, sowie r+ und *nicht* LOCH_SH und w+ genommen habe. Lies bitte im PHP-Manual für fopen() (englische Version benutzen, die deutsche Übersetzung ist veraltet!) nach, was die Modi bedeuten und warum für den Fall, dass du Lesen und Schreiben willst nur r+ sinnvoll ist. In der Doku zu flock() steht dann auch, warum du beim Schreiben LOCK_EX nehmen solltest, während beim Lesen LOCK_SH genügt.

Also:
Wenn du nur Lesen willst
 -> LOCK_SH und r
Wenn du nur Schreiben willst und dabei der alte Inhalt der Datei komplett gelöscht werden soll
 -> LOCK_EX und w
Wenn du Lesen und Schreiben willst (löschen des Inhalts der Datei musst du mit ftruncate() selbst machen, natürlich erst nachdem du die Datei ausgelesen hast)
 -> LOCK_EX und r+

$vari = "<xml....><Die Elemente meiner XML-Datei></Die Elem...>";

Genau so ;-) Alternativ könntest du auch mit DOM das XML von Grund auf erstellen, da bietet DOM meines Wissens ein paar Funktionen. Übrigens fehlt bei deinem XML-Dokument von oben eine XML-Deklaration, damit das ein gültiges XML-Dokument ist.

Ist die Leistungseinbuße für solche Zwecke tatsächlich so dramatisch?

Kommt drauf an, wie sauber du das implementierst ;-) Fang einfach mal an, optimieren kannst du später noch, insbesondere könnte das Cachen von Daten in einer besser bzw. schneller lesbaren Struktur am Ende die Geschwindigkeit erhöhen, falls du Performance-Probleme feststellst.

Viele Grüße,
  ~ Dennis.