template parser - files includen
Stijn Dumoulin
17/02/2008 15:30:00Ik heb zojuist een template parser die ik van op deze site heb overgenomen geïnstalleerd voor mijn website. Nu als ik bv {content} wil vervangen door een string, dan gaat dit perfect. {menu} echter wil ik vervangen hebben door een andere PHP-file. Dus ik gebruikte
Maar als ik dit doe dan krijg ik op mijn index.php op de plaats waar ik menu.php wil includen gewoon '1' te zien.
Maar als ik dit doe dan krijg ik op mijn index.php op de plaats waar ik menu.php wil includen gewoon '1' te zien.
PHP hulp
28/03/2024 11:28:34Jan Koehoorn
17/02/2008 15:33:00Dat klopt. Het resultaat van include ("menu.php") zal een 1 opleveren als het gelukt is. Beter zo:
$page = str_replace("{menu}", 'include("menu.php")', $page);
$page = str_replace("{menu}", 'include("menu.php")', $page);
Bo az
17/02/2008 15:34:00Dat heeft met de return value van include te maken, bekijk de manual maar.
De oplossing kan verschillen zijn, als er geen php het bestand staat, kan je file_get_contents() gebruiken, anders zou je met ouput buffering kunnen werken.
De oplossing kan verschillen zijn, als er geen php het bestand staat, kan je file_get_contents() gebruiken, anders zou je met ouput buffering kunnen werken.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
ob_start();
include 'menu.php';
$page = str_replace("{menu}", ob_get_clean(), $page);
?>
ob_start();
include 'menu.php';
$page = str_replace("{menu}", ob_get_clean(), $page);
?>
Stijn Dumoulin
17/02/2008 15:36:00Als ik dat doe laat hij op de plaats waar menu.php geïncluded zou moeten zijn gewoon de zin include("menu.php"); zien.