dedlfix: XML Seite über PHP erstellen

Beitrag lesen

Tach!

Die daten für das erzeugen der HTML-Seiten will ich nicht über PDO kriegen sondern einfach xml.

Da liegt schon der grundlegende Irrtum. Es wird mit XML nicht einfacher, wenn man es richtig machen möchte. Fehlerbehandlung braucht man bei Datenbank und Dateisystem, da hat keines der beiden Systeme die Nase vorn. Bei Dateisystemzugriffen muss man sich aber extra noch mit dem Thema des konkurrierenden Zugriffs beschäftigen. Sonst kann es unter vielleicht seltenen, aber sehr schwer nachvollziehbaren Umständen zu einem Datenverlust kommen. Der Prozess von Spammer A hat die Datei grad geöffnet und löscht ihren Inhalt, um ihn neu schreiben zu können. In dem Augenblick liest Spammer B die Datei und findet keinen vor, schreibt sein Zeug rein und speichert sie, nachdem Spammer A fertiggeschrieben hat. Damit verschwinden alle vorhergehenden im Gästebuch eingetragenen Werbungen und nur die von B bleibt erhalten. Das muss man für die Datenbank nicht beachten, weil die von Haus aus mit solchen konkurrierenden Zugriffen umgehen kann. Selbst wenn man nur das dateibasierende SQLite nimmt.

Weiterhin braucht man ein Verwaltungswerkzeug, um zum Beispiel die Rechtschreibfehler oder kaputten Links der Spammer korrigieren zu können. Für die Datenbankvariante gibt es zur Not fertige Verwaltungstools. Für die XML-Variante muss man sich eins selbst schreiben. Man kann ja nicht die Datei im Editor geöffnet haben und ein paar Minuten lang darin arbeiten, weil in der Zwischenzeit die Spammer das Original weiter füllen. Diese neuen Einträge wandern nicht live in den Editor und gehen beim Speichern der eigenen Änderungen verloren. Das ist dann ein Szenario wie oben, nur dass die Chance auf Verlust deutlich höher ist, weil die Verweildauer im Editor sehr viel läger ist.

Wenn die Spammer fleißig sind, hat das System immer mehr Arbeit, weil stets die gesamte Datei neu gelesen, geparst und bei Bedarf wieder geschrieben werden muss. Gelesen werden müssen alle Einträge auch in der Datenbank-Variante, aber das nur zum Anzeigen und wenn man kein Paging verwendet. Das Schreiben geht jedenfalls effizienter, weil das DBMS die neuen Daten anhängen kann und nicht in eine Struktur einarbeiten muss, die sich durch die gesamte Datei zieht.

Zusammenfassung: Arbeit spart man sich mit (XML-)Datei statt Datenbank nicht wirklich, wenn man es richtig machen möchte. Man hat ein paar Umstände zu beachten, für die ein DBMS bereits Lösungen eingebaut hat.

dedlfix.