Hallo,
also ich habe einen sehr komischen Fehler.
Und zwar habe ich eine Template Class. Sofern im Cache Ordner noch keine Datei vorhanden ist, wird das Template gelesen, in eine PHP Datei umgewandelt und in den Ordner gespeichert.
Anschließen wird diese per Include geladen.
Dort gibt es jetzt 2 Möglichkeiten: Sofort ausgeben, oder den Inhalt zurück geben.
Der Ausgabeprozess sieht so aus:
if(!file_exists($pfad)) die("Fehler");
if($doOutPut == 1) @include("$pfad");
else
{
ob_start();
include $pfad;
$return = ob_get_contents();
ob_end_clean();
return $return;
}
return 0;
Immer wenn ich den Inhalt zurück geben möchte, passiert etwas sehr komisches wenn ich den Inhalt zurück geben möchte. Falls vor dem Aufruf des Scripts die Cache Datei vorhanden ist, dann wird diese ganz normal geladen und auch zurückgegeben.
Falls sie nicht vorhanden ist, wird sie zuerst erstellt, und anschließend sollte der Inhalt zurückgegeben werden, was aber nicht passiert.
$return ist hierbei leer, obwohl die Datei existiert.
Wenn ich ob_start() etc. auskommentiere, so dass dort nur noch include $pfad; steht, dann wird die Datei ganz normal geladen, und direkt ausgegeben.
Beim nächsten Aufruf, wo die Cache Datei bereits existiert, funktioniert es mit der Rückgabe.
Kann mir jmd. sagen warum das so ist? Und was man dagegen machen kann?
MFG
Klaus