Wow, vielen Dank, das ganze funktioniert bestens.
Meine aktuelle Lösung (ich hoffe, dass das so stimmt):
Code:
protected function parse2_include($filename)
{
if (in_array($filename, $this->parent_files))
{
// Endlosrekursion
return;
}
$this->parent_files[] = $filename;
if (!$
handle = $this->check_filename($filename))
{
$
handle = $filename;
$this->add_file($
handle, $filename);
}
$file =& $this->get_file_ref($
handle);
$this->parse1($
handle, true);
eval(' ?>' . $file['content'] . '<?php ');
array_pop($this->parent_files);
}
In der parse1()-Funktion wird außerdem die erste (nicht per INCLUDE eingebundene Datei) ins Array eingetragen und bei jeder neuen Datei das Array zurückgesetzt:
Code:
if (!$included)
{
$this->parent_files = array($file['filename']);
}