Hallo Zusammen!
Weil das hier ein ganz typisches Beispiel ist und man es halt
typischerweise auf beliebig viele Varianten machen kann, erlaube
ich mir hier, einige ausführlichere Kommentare Abzugeben .)
Du hast grundsätzlich 2 Möglichkeiten bei der Verwendung von
PHP (Was hier natürlich sehr zu empfehlen ist)
A: Statische Dateien
Du kannst Deine Kapiteldateien als Files lassen und sie bsp.
durch reine Includes reinholen. Viel intelligenter jedoch wäre,
die Files direkt einzulesen (in PHP mit fopen() usw ...) und den
Inhalt regelrecht zu parsen. Somit kann man bsp. bei vorhandenen
sauberen 300 Files nur den gewünschten Inhalt extrahieren. Dafür
sind Markierungen innerhalb der Textdateien auch sehr Sinnvoll
(Eine Art Pseudotags, um Bereicht zu finden)
Problem dabei:
Die Suchfunktion würde hier jedoch jedes File öffnen müssen und
dabei durchsuchen! Die 300 Files sind dann nun schon eine rechte
Zahl und das Suchscript muss schon gut geschrieben werden.
Ich fasse auch das "schöne & richtige" Durchsuchen von solchen Files
als echte Herausforderung auf!
Wenn aber schon solche Systeme implementiert sind, die diese
Aufgabe für und machen, weshalb verwenden wir diese nicht einfach ?
B: Datenbank
Wir importieren alle Textfiles (Inhalte) in Datensätze.
Für jedes Kapitel einen Datensatz
Die Struktur hier bsp (in der DB):
- KapitelNrLevel1 (INT)
- KapitelNrLevel2 (INT)
- KapitelNrLevel3 (INT)
- Inhalt (TEXT)
Das Kapitel "6" hat dabei die Werte (als eine einfache Möglichkeit):
KapitelNrLevel1=6; KapitelNrLevel2=0; KapitelNrLevel3=0;
Das Kapitel "6.2.1" hat dabei die Werte:
KapitelNrLevel1=6; KapitelNrLevel2=2; KapitelNrLevel3=1;
Nun können wir ganz simpel auf alle Einträge zugreifen!
Das importieren gibt nicht mehr arbeit als sonst das vorbereiten
der Textfiles (im gegenteil!)
Weiter hast du eine Suche, welche auch bei Volltextsuchen Dein
projekt noch lange als "kleines Projekt" bezeichnen kann...
Bsp: mySQL würde hier problemlos mit 100'000 Einträgen auskommen!
Das Ganze ist auch wartungsfreundlich und du kannst es ganz einfach
ausgeben. Via PHP direkt... von hand Programmiert
oder aber auch mit den GoLive-Elementen, welche für diesen Fall
auch absolut genügend sind! (Du müsstest also keine einzige Zeile
PHP von Hand schreiben!)
Eine kleine umfassende Anleitung zu diesem Thema würde sich an
dem GoLive-Weekend finden...
http://www.hilfdirselbst.ch/wochenende/ Ich kann dir eine saubere Datenbank nur empfehlen!
GrEeZ: Miro Dietiker