Ok!
Was möchte ich eigentlich? Ich habe ganz normale Platzhalter:
Diese werden folgendermaßen ersetzt:
PHP-Code:
/* REPLACE STANDARD PLACEHOLDERS {$placeholder} */
public function assign($replace, $replacement) {
$this->template = str_replace($this->leftDelimiter.$replace.$this->rightDelimiter, $replacement, $this->template);
return true;
}
Und ich habe Platzhalter, mit dren Hilfe eine Datei includet werden soll:
Code:
{include file="file.php"}
Das geschieht so:
PHP-Code:
/* REPLACE FUNCTIONS */
protected function replaceFunctions() {
// replace includes ( {include file="theinclude.php"} )
while(preg_match("/".$this->leftDelimiterF."include file=\"(.*)\.(.*)\"".$this->rightDelimiterF."/isUe", $this->template)) {
$this->template = preg_replace("/".$this->leftDelimiterF."include file=\"(.*)\.(.*)\"".$this->rightDelimiterF."/isUe", "file_get_contents('\\1'.'.'.'\\2')", $this->template);
}
return true;
}
Problem, mit file_get_contents, kann man keine php-dateien includen.
Zitat:
Zitat von darksaber
Statt also die Datei vom Template aufrufen zu lassen
|
Das Template ruft garnichts auf. Und ich würde gerne nur das Output in der Template-Variablen speichern bekomm ich aber nicht hin. Eine Funktion, wie sie feuervogel vorschlug sähe so aus:
PHP-Code:
/* PARSE FILE AND SAVE IT TO STRING */
public function load($stuff) {
ob_start();
include $stuff;
$newstuff = ob_get_contents();
ob_end_clean();
return $newstuff;
}
Die bekomme ich aber nicht richtig eingebunden, da bekomm ich immer eine ellen lange Fehlermeldung.
Meiner Meinung nach komme ich hier nicht um eval() oder die obrige Funktion drum rum, die ich brauche, um den code aus der Datei zu parsen, bevor ich das ganze in die Variable schreibe.