Textdatei auslesen und formatiert anzeigen

leuktra

Mitglied
Hallo zusammen!

Folgende Frage: Ich habe eine Textdatei die sich so "gliedert":

Überschrift (A)
Text, Text ...
Text, Text ...
<Leerzeile>
Überschrift (B)
Text, Text ...
<Leerzeile>
Überschrift (C)
Text, Text ...
Text, Text ...
Text, Text ...
<Leerzeile>
usw.

Nun würde ich die Textdatei gern per PHP so ausgeben lassen, daß
die Überschriften immer Fett und die Texte immer z.B. in Arial
angezeigt werden. Wie eine Textdatei per PHP aufgerufen wird weiß
ich - wie löst man aber das mit der "Formatierungsabfrage"?
 

Iches

Erfahrenes Mitglied
Ich denke du wirst die Überschriften wahrscheinlich bestimmt gekennzeichnet haben oder? Weil suchst du einfach danach mit preg_match und wenn ja, dann setzt du vor und nach der Ausgabe deine Formatierung.
 

Layna

Erfahrenes Mitglied
Hallo.
Ich nehme mal an dass du die Datei als HTML ausgeben willst?
Zum Korrekten erkennen und umsetzen der Zeilenumbrüche, sonderzeichen etc. gibt es, soweit ich mich erinnere, eine Funktion... aber bevor ich die finde haben sich die gurus hier 5 bis 6 mal dran erinnert wie die hiess ^^.
Zu den Überschriften:
Wenn die alle etwas gemeinsam haben dass die anderen Zeilen NICHT haben (eben z.B. dein (*) am ende) kannst du die per regular expression erkennen und dann ein <h1> drum herum setzen.

Layna
 

leuktra

Mitglied
Hallo.
Ich nehme mal an dass du die Datei als HTML ausgeben willst?
Zum Korrekten erkennen und umsetzen der Zeilenumbrüche, sonderzeichen etc. gibt es, soweit ich mich erinnere, eine Funktion... aber bevor ich die finde haben sich die gurus hier 5 bis 6 mal dran erinnert wie die hiess ^^.
Zu den Überschriften:
Wenn die alle etwas gemeinsam haben dass die anderen Zeilen NICHT haben (eben z.B. dein (*) am ende) kannst du die per regular expression erkennen und dann ein <h1> drum herum setzen.

Layna

Hi Layna,
danke für Deine Antwort ... das weiß ich! :)
 

leuktra

Mitglied
Ich denke du wirst die Überschriften wahrscheinlich bestimmt gekennzeichnet haben oder? Weil suchst du einfach danach mit preg_match und wenn ja, dann setzt du vor und nach der Ausgabe deine Formatierung.

Nein, ich habe die Überschriften usw. nicht gekennzeichnet! Habe eben leider noch gar keine Idee :(
 

Iches

Erfahrenes Mitglied
Das Problem ist nämlich dann, dass man nicht genau weiß wo eine Überschrift ist, und wo der normale Text anfängt.
 

leuktra

Mitglied
Nun habe ich das so gemacht:

PHP:
<?php
$datei = fopen('blabla.txt', 'r');
if ($datei)
{
while (!feof($datei)) 
{
$inhalt = fgets($datei);
$daten = explode(" | ", $inhalt);
echo '<b>'.htmlentities($daten[0]).'</b>';
echo '<i>'.htmlentities($daten[1]).'</i>';
}
fclose($datei);
}
else
echo 'Datei nicht gefunden!';
?>

Für Verbesserungsvorschläge wäre ich sehr dankbar!
 

Michael Engel

Erfahrenes Mitglied
Wenn die Datei weiter so unformatiert ist gibt es nur 2 Regeln:

  • 1. Zeile ist immer eine Überschrift
  • Nach jeder Freizeile Kommt eine Überschrift

Dann könnte man es auch so lösen:

PHP:
$head = false;
$bold = true;
$file = explode("\n", file_get_contents('datei.bla'));
foreach ($file as $row){
    if($row == "") $head = true;
    echo ($bold?'<b>':'').$row.($bold?'</b>':'').'<br>';
    if($head) {
        $bold = true;
        $head = false;
    } else {
        $bold = false;
    }
}
 
Zuletzt bearbeitet:

Neue Beiträge