Start · Sprachen · PHP · Referenz · tidy_get_output

tidy_get_output

Funktion

Gibt den bereinigten und formatierten HTML/XML-Quelltext als Zeichenkette zurück, nachdem Tidy das Dokument verarbeitet hat.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_get_output(tidy $tidy): string

Beschreibung

tidy_get_output() ist die prozedurale Variante der Methode tidy::value() und liefert den vollständigen, von der Tidy-Bibliothek verarbeiteten Markup-String zurück. Das Dokument muss zuvor mit tidy_parse_string(), tidy_parse_file() oder einer entsprechenden Methode eingelesen worden sein.

Die Funktion ist besonders nützlich, wenn man das bereinigte Dokument als String weiterverarbeiten, in einer Datenbank speichern oder direkt ausgeben möchte, ohne es in eine Datei zu schreiben. Sie liefert das Ergebnis in dem Format, das durch die Tidy-Konfigurationsoptionen (z. B. output-xhtml, indent, wrap) festgelegt wurde.

Wichtig: tidy_get_output() gibt den Inhalt so zurück, wie ihn Tidy intern gespeichert hat – inklusive des vom Tidy-Objekt verwendeten Zeichensatzes. Stellt man also die Option char-encoding auf utf8, ist auch die Ausgabe UTF-8-kodiert.

  • Prozeduraler Stil: tidy_get_output($tidy)
  • Objektorientierter Stil: $tidy->value (Property-Zugriff)

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Ein tidy-Objekt, das zuvor mit tidy_parse_string() oder tidy_parse_file() befüllt wurde.

Rückgabewert

Typ
string
Beschreibung
Gibt den vollständig bereinigten Markup-String zurück, der dem aktuellen Stand des tidy-Objekts entspricht. Im Fehlerfall oder wenn kein Dokument geladen wurde, kann ein leerer String zurückgegeben werden.

Beispiele

HTML-String bereinigen und Ergebnis als Variable nutzen

<?php
$html = '<HTML><head><title>Test</title></head><BODY><P>Hallo Welt</BODY></HTML>';

$config = [
    'indent'       => true,
    'output-xhtml' => true,
    'wrap'         => 200,
];

$tidy = tidy_parse_string($html, $config, 'UTF8');
tidy_clean_repair($tidy);

$saubererHtml = tidy_get_output($tidy);
echo $saubererHtml;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content= "HTML Tidy for PHP alternative, see https://github.com/htaccess-aces/tidy" /> <title>Test</title> </head> <body> <p>Hallo Welt</p> </body> </html>

HTML aus Datei laden, bereinigen und Ergebnis speichern

<?php
$config = [
    'indent'       => true,
    'output-html'  => true,
    'char-encoding'=> 'utf8',
];

$tidy = tidy_parse_file('seite.html', $config, 'UTF8');
tidy_clean_repair($tidy);

$bereinigtesHtml = tidy_get_output($tidy);
file_put_contents('seite_sauber.html', $bereinigtesHtml);

echo 'Datei wurde bereinigt und gespeichert. Länge: ' . strlen($bereinigtesHtml) . ' Bytes.';
Datei wurde bereinigt und gespeichert. Länge: 1234 Bytes.

// Wichtig · Fallstricke

Reihenfolge beachten: Rufe tidy_clean_repair() auf, bevor du tidy_get_output() verwendest. Andernfalls kann der zurückgegebene String unvollständig oder unbereinigt sein.

Zeichenkodierung: Die Kodierung des zurückgegebenen Strings hängt von der Tidy-Konfigurationsoption char-encoding ab. Stimme diese mit der Kodierung deiner Anwendung ab, um Zeichensatzprobleme zu vermeiden.

Objektorientierter Stil: Im OOP-Stil steht der bereinigte Inhalt über die Eigenschaft $tidy->value zur Verfügung – es gibt keine gleichnamige Methode.