Hallo,
Ich muss ein Redaktionsystem ohne Datenbankanbindung erstellen.
Mein Beileid.
Die einzelnen Beiträge werden durch "%" getrennt.
Die Unterteile der Beiträge (Titel, Datum, Text...) werden durch "#" getrennt.
Auch wenn ich selbst nicht verstehe, warum Klammern Probleme machen, (der Code sah in Ordnung aus) kann ich Dir mal folgende Lösung anbieten. Diese Lösung solltest Du auf jeden Fall für das Prozentzeichen und die Raute verwenden, jedoch dürfte das bei den Klammern unnötig sein.
Vor dem Einfügen in das Array ersetzt Du das %-Zeichen durch !P, das #-Zeichen durch !R, das !-Zeichen durch !!, das (-Zeichen durch !O und das )-Zeichen durch !G.
(P für Prozent, R für Raute, !! damit man überhaupt noch Ausrufezeichen verwenden kann, O für offen, G für geschlossen)
Wenn Du es wieder ausliest, ersetzt Du alles wieder zurück.
Noch etwas:
$wholetext = eregi_replace("%#####", "", $wholetext);
Warum diese Zeile? Das dürfte doch gar nicht passieren.
Ich hätte noch eine komplett andere Alternative für Dich: (die viel einfacher ist, weil Du Dich um solche Speichermechanismen keine Gedanken machen musst)
Du hälst Deine komplette Datenstruktur direkt verschachtelten Arrays oder Objekten im Speicher. Immer, wenn Du etwas bearbeitest, bearbeitest Du nur diese Strukturen. Das Script selbst liest sich am Anfang den kompletten Dateiinhalt aus und jagt ihn durch die PHP-Funktion unserialize. Wenn die Daten gespeichert werden sollen, jagt es sie durch serialize und speichert das Ergebnis in der Datei.
Also:
1. Datei öffnen, lesen, unserialize => dann steht das Array zur Verfügung
2. Array bearbeiten
3. serialize, schreiben, Datei schließen
Ach ja, Du solltest Dich prinzipiell noch mit Locking beschäftigen, sonst kommt es zu Komplikationen: http://de3.php.net/manual/de/function.flock.php
Christian
Hast Du einen Beitrag? Nur her damit!
http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[