bene: wie "markiere" ich bestimmete einträge in einer datei...

Beitrag lesen

hi,

vielen dank für die schnelle und ausführliche antowrt.

ich werde mal das mit den trennzeichen versuchen.
aber wie lese ich das dann getrennt aus (ich bin absoluter php neuling)? mit welchem befehl?

ein weiteres problem ist, dass sich die datei ja ständig erweitert...

Grüssi!

Die Daten kommen von einer Forumlareingabe und werden mittels fputs in eine txt datei geschrieben... kommen immer eine überschrift und ein inhalt hinzu.

Du hast mehrere Möglichkeiten, deine Daten abzuspeichern:

Du kannst die HTML Definitionen gleich so abspeichern wie du sie später anzeigen willst:

<h1>Erste Überschrift</h1> <p>Content</p>
<h1>Zweite Überschrift</h1> <p>Content</p>
...

Der Nachteil dabei ist, du hast Daten und Layout zusammen abgelegt, und wenn du dieselben Daten z.b. für eine andere Anwendung anders darstellen willst, macht das Umstände!

Du kannst auch gute alte Trennzeichensyntax verwenden, und an der Reihenfolge der eingelesenen Blöcke in der Zeile auf die Semantik die dieser Block ausdrückt schliessen, anders gesagt:

Überschrift 1 §§ Content
Überschrift 2 §§ Content
...

Diese Variante ist recht einfach zu implementieren, und auch recht flexibel. Es kommt - vom Datenmodell her - am nähesten an eine "Datenbank" heran. Der Nachteil ist, wenn du nicht nur zwei Datenfelder hast, sondern es z.b. mal 10 oder mehr werden sollen, leidet die Übersicht ein wenig. Du musst dir dann irgendwie merken, in welches Feld was reingespeichert werden soll. (Das ist übrigens eine gute Variante, wenn du dich in eine Firma "einzementieren" willst. Manche Leute programmieren absichtlich solche Sachen, damit keiner ausser ihnen das lesen kann, und somit ihr job bis zur Pension gesichert ist ;-)

die dritte möglichkeit wäre eine xml-syntax:

<eintrag>
<kopfdaten>
  <titel>Überschrift 1</titel>
</kopfdaten>
<body>Content</body>
</eintrag>
<eintrag>
<kopfdaten>
  <titel>Überschrift 2</titel>
</kopfdaten>
<body>Content</body>
</eintrag>
.....

Wie du siehst, musst du hierbei zusätzlichen Speicherplatz für die Metainformationen einkalkulieren, dafür ist diese art der Datenablage skalierbar. Man kann das Ding schnell mal erweitern. Du kannst mit von den Sprachen zur Verfügung gestellten xml-Parsern die Datei auslesen, vorausgesetzt die Datei ist wohlgeformt natürlich!

Eine letzte Möglichkeit die mir einfallen würde wäre so eine Art ini-style, wie in Windows bei den ini-Dateien

--
[Eintrag]
Überschrift = Überschrift 1
Text        = Content
[Eintrag]
Überschrift = Überschrift 2
Text        = Content
...

Deiner Kreativität sind also keine Grenzen gesetzt ;-) Wenn du nicht allzuviel verschiedene Arten von Daten hast, also solange es nur um Überschrift und Content geht, würde ich die Trennzeichen-syntax nehmen. Wenn du vorhast, in Zukunft mehr Informationen mitabzulegen, würde ich dir zu xml- oder ini-Syntax raten.

lg bernhard