Felix Riesterer: Text vor header-Funktionen ?

Beitrag lesen

Lieber mike,

ich habe mir angewöhnt, bei sehr langen Scripten eine globale Variable anzulegen, in die ich die Ausgaben des Scriptes hineinschreibe (also das, was ich sonst per echo direkt an den Browser ausgebe), um erst am Ende des Scripts diese Inhalte tatsächlich per echo auszugeben.

Ein nicht besonders sinnvolles Beispiel:

<?php  
  
// $GLOBALS ist ein global verfügbares Array, in dem ich einfach ein  
// Unter-Array mit dem Index "ausgabe" definiere, um meine Ausgabe zu  
// speichern:  
$GLOBALS['ausgabe'] = '';  
  
function ergebnis_addition($a, $b) {  
    $ergebnis = $a + $b;  
  
    // echo "<p>Ergebnis: a ($a) + b ($b) = ".($a + $b).".</p>";  
    $GLOBALS['ausgabe'] .= "<p>Ergebnis: a ($a) + b ($b) = ".($a + $b).".</p>"; // anstatt echo!  
  
    return $ergebnis;  
}  
  
$x = 7;  
$y = 8;  
$z = ergebnis_addition($x, $y);  
  
$GLOBALS['ausgabe'] .= "<p>Das war die Summe aus $x und $y, nämlich $z.</p>";  
  
$f = 9;  
$g = 18;  
$h = ergebnis_addition($f, $g);  
  
$GLOBALS['ausgabe'] .= "<p>Und das war die Summe aus $f und $g, nämlich $h.</p>";  
  
// Ende des Scripts: Jetzt erst gehen tatsächlich Daten an den Browser:  
echo $GLOBALS['ausgabe'];  
?>

In diesem Beispiel sollte deutlich werden, wie an verschiedenen Stellen im Script HTML-Ausgaben (es könnten aber auch andere Ausgaben sein) dem (String-)Inhalt einer Variablen ($GLOBALS['ausgabe']) angefügt werden, anstatt direkt per echo an den Browser gesendet zu werden.

Mit PHPs tollen String-Funktionen kann man dann auch noch vor der Ausgabe diese Inhalte "überarbeiten", wie z.B. Platzhalter aus Template-Dateien mit ihren jeweiligen Daten befüllen, Linkziele korrigieren, Session-ID in href- und action-Attribute eintragen (falls session.use_trans_sid nicht aktiviert ist), usw.

Hilft Dir das weiter?

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)