• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tab Darstellung aus Datei

Redkin

Neues Mitglied
Ich öffne eine Datei mit fopen() und lese sie mit fget() aus, aber die Tabulatoren werden nicht angezeigt da html soweit ich weis Tabulatoren nicht unterstützt. Wie könnte ich das machen das sie angezeigt werden?
 
Die grausame Methode: alle Tabs mit einer Latte von   ersetzen
Die bessere Methode: mit Margins oder Paddings arbeiten
 
Eig, wollte ich ja die tabs zählen und mit text intend arbeiten, doch ich weis nicht wie genau ich nur die am Anfang zählen soll.
Kennt sich da jemand aus?
 
Zuletzt bearbeitet:
Um Tabs innerhalb von HTML anzeigen/Ausgeben zu können, setz die Ausgabe zwischen <pre></pre>.

Für die Zählung von Tabs kannst du die Funktion substr_count() nutzen.

Beispiel:
PHP:
$handle = fopen("tab.txt", "r");
if ($handle) {
    echo '<pre>';
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
        echo 'Count: '.substr_count($buffer, "\t").'<br>';
    }
    if (!feof($handle)) {
        echo "Fehler: unerwarteter fgets() Fehlschlag\n";
    }
    echo '</pre>';
    fclose($handle);
}

Ausgabe (Tabs werden hier im Forum nicht angezeigt, bei der HTML-Testseite schon!):
Zeile 1 Spalte 2 (1 Tab) Spalte3 (3Tabs)
Count: 4
Zeile 2 Spalte 2 (2 Tabs) Spalte 3 (2 Tabs)
Count: 4
Zeile 3 Spalte 2 (3 Tabs) Spalte 3 (5 Tabs)
Count: 8

Hier mal der HTML-Output meines Tests:
HTML:
<pre>Zeile 1    Spalte 2 (1 Tab)            Spalte3 (3Tabs)
Count: 4<br>Zeile 2        Spalte 2 (2 Tabs)        Spalte 3 (2 Tabs)
Count: 4<br>Zeile 3            Spalte 2 (3 Tabs)                    Spalte 3 (5 Tabs)
Count: 8<br></pre>
 
Zuletzt bearbeitet:
Danke CPCoder, aber eine frage habe ich noch. Wenn ich das so mache habe ich am Anfang und am Ende des outputs eine leere Zeile. Ist das normal und wie bekommt man das weg?
 
Probier mal folgendes:
PHP:
while (($buffer = fgets($handle, 4096)) !== false) {
       if ($buffer != '') {
              echo $buffer;
              echo 'Count: '.substr_count($buffer, "\t").'<br>';
       }
}
 
Zurück
Oben