Rüdiger Keßler: Output buffer mag keinen Zeilenumbruch / <br /> ?

Beitrag lesen

Ahoy zusammen,

ich habe jetzt bald anderhalb Tage herumprobiert und recherchiert und bin kurz von der Konvertierung zum Theologen (Da reicht es, wenn man sagt "Ich glaube, dass...." und muss es nicht auch noch programmieren!).

Die Situation:

Ein PHP-Skript erzeugt eine Ausgabe, in der auch "leere" Tags enthalten sind wie z.B. <br /> und <hr />.
Je nachdem, für welchen Doctype die Seite erzeugt werden soll, werden die Tags unterschiedlich zusammengebaut:
HTML 4.0 => <br>
XHTML 1.0 Trans. => <br />

Der entscheidende Codeschnipsel:
$result .= empty($GLOBALS['tag_list_unclosed'][$p_tag]) ? _D13_TAG_OPEN_END : $this->system->html['doctype']['nonclosed'];

wobei
_D13_TAG_OPEN_END definiert ist als ">" und
tag_list_unclosed[] ein array ist, in dem die "leeren" Tags enthalten sind
html['doctype']['nonclosed'] ein array ist, in dem vorher die für den Doctype notwendigen Infos enthalten sind.

Funktioniert soweit alles prima.

Nun will ich die komplette Ausgabe in den output-buffer schicken, von dort später in einen String auslesen auslesen und dann ausgeben.
Die auskommentierten Zeilen sind die bisher fuktionierende Version)
-------------------------------
ob_start();
$tmp = $fs->incdir(_D13_DIR_MDL).'mod.'.$sys->content[$dbf['mtch']].'.php';
//--- include module now
if ( file_exists($tmp) ) {
    require_once($tmp);
} else {
    $dbg->log($tmp);
}
$output_content = ob_get_contents();
ob_end_clean();

function content() {
//    global $system, $sys, $txt, $db, $fs, $dbf, $dbg;
//    $tmp = $fs->incdir(_D13_DIR_MDL).'mod.'.$sys->content[$dbf['mtch']].'.php';
//    //--- include module now
//    if ( file_exists($tmp) ) {
//        require_once($tmp);
//    } else {
//        $dbg->log($tmp);
//    }
    echo $GLOBALS['output_content'];
}
-------------------------------
Die Variablen sind alle nachgewiesenermaßen richtig befüllt, der entsprechende File wird tatsächlich invcluded.

Aber dann macht er mir aus allen Leeren Tags ein "<brX" bzw. ein "<hrX".
Der Abschluss des Tags fehlt und wird dann eben durch ein großgeschriebenes "X" ersetzt.

WARUM????

Gruß und herzlichen Dank im Voraus,
Rüdiger