Ik heb min of meer de volgende code:
Het probleem is echter de include() die in $body staat al direct wordt uitgevoerd, en niet pas als deze wordt aangeroepen met een echo(). Wat ik dus eigenlijk wil is dat de inhoud van page.$page.php wordt toegekend aan een variabele en dan later kan worden ge-echo()ed.
Ik kan me niet permiteren om gewoon de include() pas wat later neer te zetten.
$body moet ook gewone tekst kunnen bevatten, dus
Nu heb ik (uiteraard) gezocht en heb het volgende topic gevonden:
[rml][ php]PHP als variable uitvoeren[/rml]
Hier heb ik de volgende functie uit kunnen halen:
Dit werkt naar behoren, maar is nogal omslachtig in mijn ogen en lijkt overbodig.
Het enige dat eigenlijk hoeft te gebeuren is de include() niet direct uit te voeren maar wachten tot deze wordt aangeroepen.
Heeft iemand een (betere) oplossing voor mijn probleem?
PHP:
1
2
3
| $body = include("page.".$page.".php"); // hier wat andere code echo $body; |
Het probleem is echter de include() die in $body staat al direct wordt uitgevoerd, en niet pas als deze wordt aangeroepen met een echo(). Wat ik dus eigenlijk wil is dat de inhoud van page.$page.php wordt toegekend aan een variabele en dan later kan worden ge-echo()ed.
Ik kan me niet permiteren om gewoon de include() pas wat later neer te zetten.
$body moet ook gewone tekst kunnen bevatten, dus
PHP:
is niet echt een optie.1
| eval("include(\"page.\".$page.\".php\");"); |
Nu heb ik (uiteraard) gezocht en heb het volgende topic gevonden:
[rml][ php]PHP als variable uitvoeren[/rml]
Hier heb ik de volgende functie uit kunnen halen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function parsepage($pagetoparse) { $php_code = ''; $fp = fopen($pagetoparse, 'r'); while (!feof($fp)) $php_code .= fread($fp, 1024); fclose($fp); ob_start(); eval("?>" . stripslashes($php_code) . "<?"); $output = ob_get_contents(); ob_end_clean(); return $output; } |
Dit werkt naar behoren, maar is nogal omslachtig in mijn ogen en lijkt overbodig.
Het enige dat eigenlijk hoeft te gebeuren is de include() niet direct uit te voeren maar wachten tot deze wordt aangeroepen.
Heeft iemand een (betere) oplossing voor mijn probleem?