Start · Sprachen · PHP · Referenz · tidy_is_xhtml

tidy_is_xhtml

Funktion

Gibt zurück, ob das geparste Dokument ein XHTML-Dokument ist.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_is_xhtml(tidy $tidy): bool

Beschreibung

tidy_is_xhtml() prüft, ob das über die tidy-Erweiterung geparste Dokument als XHTML erkannt wurde. Dies ist nützlich, wenn eine Anwendung unterschiedlich auf HTML- und XHTML-Dokumente reagieren soll, z. B. beim Setzen des korrekten Content-Type-Headers oder beim Anpassen der Ausgabe-Serialisierung.

Die Funktion arbeitet auf einem bereits geparsten tidy-Objekt. Das Dokument muss also zuvor mit tidy_parse_string(), tidy_parse_file() oder der entsprechenden OOP-Methode eingelesen worden sein, bevor das Ergebnis aussagekräftig ist.

In der objektorientierten Schreibweise steht die Methode als $tidy->isXhtml() zur Verfügung und liefert dasselbe Ergebnis wie die prozedurale Variante.

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Ein tidy-Objekt, das ein bereits geparste Dokument repräsentiert.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das geparste Dokument ein XHTML-Dokument ist, andernfalls false.

Beispiele

XHTML-Erkennung mit prozeduraler API

<?php
$html = '<!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><title>Test</title></head>
<body><p>Hallo Welt</p></body>
</html>';

$tidy = tidy_parse_string($html);

if (tidy_is_xhtml($tidy)) {
    echo "Das Dokument ist XHTML.";
} else {
    echo "Das Dokument ist kein XHTML.";
}
Das Dokument ist XHTML.

XHTML-Erkennung mit OOP-API und Content-Type-Steuerung

<?php
$html = '<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body><p>Hallo Welt</p></body>
</html>';

$tidy = new tidy();
$tidy->parseString($html);

if ($tidy->isXhtml()) {
    header('Content-Type: application/xhtml+xml; charset=utf-8');
    echo "XHTML-Content-Type gesetzt.";
} else {
    header('Content-Type: text/html; charset=utf-8');
    echo "HTML-Content-Type gesetzt.";
}
HTML-Content-Type gesetzt.

// Wichtig · Fallstricke

Hinweis: Die Erkennung basiert auf dem DOCTYPE des Dokuments sowie dem verwendeten XML-Namespace. Fehlt ein expliziter XHTML-DOCTYPE, wird das Dokument in der Regel als HTML eingestuft, selbst wenn es syntaktisch valides XHTML wäre.

Die Funktion setzt eine installierte und aktivierte tidy-Erweiterung voraus. Ist diese nicht verfügbar, führt der Aufruf zu einem fatalen Fehler.