Templatesystem - include an falscher stelle

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Templatesystem - include an falscher stelle

    Hallo,
    ich habe mir ein kleines und einfaches Templatesystem geschrieben. Hier soll natürlich nicht nur Text sondern auch html code ersetzen (als Platzhalter benutze ich {PLATZHALTER} ). Mein Problem ist jetzt nur folgendes:

    PHP-Code:
    function doTemplate($text){
    $login_include = include_once("./admin/login.php");

    $text str_replace("{LOGIN-INCLUDE}",$login_include,$text);
    //..weitere ersetzungen
    return $text;
    }

    $tmpfile "";
    $open file("template.tpl");
    foreach(
    $open as $text){
    echo 
    doTemplate($text);

    Das Ersetzen verläuft ohne Probleme. Damit die Datei nicht so viele male wie die Schleife durchläuft eingebunden wird habe ich include_once genommen. Leider wird diese Datei nicht an der Stelle eingebunden, wo diese Platzhalter ist sondern über dem restlichen Inhalt/Template. Was gibt es hier für Alternativen, dass mein Vorhaben korrekt funktioniert?

  • #2
    Wenn die Includedateien etwas ausgeben kannst du die Ausgaben mittels Ausgabehandlern auffangen und dann ersetzen.
    PHP-Code:
     ob_start ( );
    include ( ... );
    $content ob_get_contents ( );
    ob_end_clean;
    str_replace ( ..., $content, ... ); 
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      include() gibt nichts zurück, also kannst du es auch keiner variablen zuweisen.
      alternative, wenn die datei php-geparst werden soll:
      PHP-Code:
      ob_start();
      include_once(
      $file);
      $content=ob_get_contents();
      ob_end_clean(); 
      ansonsten einfach file_get_contents() benutzen.

      Kommentar


      • #4
        So vielen dank, klappt prima!

        Kommentar

        Lädt...
        X