Hallo Jutta!
Ich habe dir jetzt mal ein Quick'n & Dirty PHP Skript erstellt, was eine TXT-Datei mit exakt dieser Struktur als Eingabe verarbeitet, und die Ausgabe in eine neue Textdatei schreibt (Achtung: Eine bereits vorhandene Datei dieses Namens wird überschrieben!)
1 Einleitung ......................................... 2
2 Haupttext .......................................... 3
2.1 Mama ............................................. 7
2.2 Papa ............................................. 9
2.2.1 Opa ........................................... 11
2.2.2 Oma ........................................... 13
2.3 Tochter ......................................... 14
3 Sohn .............................................. 88
4 Fazit ............................................. 99
Konventionen sind u.a.:
-- zwischen der Kapitelnummer und dem Namen muss ein Leerzeichen sein
- Die Kapitelbezeichnung darf keine 2 aufeinanderfolgenden Punkte '..' beinhalten
- zwischen den Punkten und der Seitenzahl muss ein Leerzeichen sein
Hier das Skript:
<?php
$lines = file('Content-Table.txt'); // EDIT: Pfad zur Datei und ggf. Dateinamen anpassen!
$html = array();
foreach($lines as $key => $line) {
$line = trim($line);
$str_out = "<tr><td>";
$pos_first = strpos($line, ' ');
$pos_last = strrpos($line, ' ');
if ($pos_first !== false && pos_last !== false) {
$str_start = substr($line, 0, $pos_first);
$str_out .= $str_start."</td><td>";
$str_tmp = substr($line, strlen($str_start), $pos_last);
$suchmuster = '/\.{2}/';
preg_match($suchmuster, $str_tmp, $treffer, PREG_OFFSET_CAPTURE);
if(isset($treffer[0][1])) {
$str_out .= trim(substr($str_tmp, 0, $treffer[0][1]))."</td><td>";
}
$str_out .= trim(substr($line, $pos_last))."</td></tr>";
array_push($html, $str_out);
}
}
$fh = fopen('Content-Table-HTML.txt', 'w'); // EDIT: Pfad zur Datei und ggf. Dateinamen anpassen!
foreach($html as $value) fputs($fh, $value."\n");
echo 'Datei erfolgreich erstellt - fertig!' . PHP_EOL;
?>
Die Stellen, wo du ggf. die Dateinamen und deren Pfadangaben ändern musst, sind entsprechend gekennzeichnet.
Das Skript verzichtet (fast) auf jegliche Prüfung. Die Struktur der Ausgangsdatei muss also "passen", ansonsten funktioniert es nicht. Und das Skript sollte nur lokal für diesen Zweck verwendet werden!
Ich hoffe, es hilft und erfüllt seinen Zweck - Viel Erfolg!
Gruß Gunther