Goedemiddag mede PHP-ers, ik ben nu bezig om d.m.v. de database de content uit te lezen, als er de code "[tarieven]" is opgenomen in de database wil ik een pagina includen

bijvoorbeeld:

Selecteer data uit database
$content = $rs['content'];
$content = str_replace("[tarieven]",include("depagina.php"),$content);

echo $content.. nu krijg ik op de plaats waar ik include , in plaats van de pagina een 1..

dus content in database = bv: hallo ik ben [tarieven] nick,

echo $content komt dan uit: hallo ik ben 1 nick.. terwijl eigenlijk de bedoeling is:

hallo ik ben

dit is de pagina

nick

Weet iemand waar dit aan kan liggen?

bvd,

nick
Je zou output buffering kunnen gebruiken:

<?php
ob_start();
include('depagina.php');
$sContent = ob_get_contents();
ob_end_flush();
?>

Je zou natuurlijk ook een functie of een klasse kunnen gebruiken in "depagina.php".

edit:

In "depagina.php" kun je ook gewoon return doen, dat werkt je oplossing wel.

depagina.php:
<?php
return 'blaat';
?>
huh?

ik moet "[tarieven]" vervangen voor een hele pagina d.m.v. include he..
ik weet niet waar jij het nu ove rheb sorry haha..

mvg,
nick
Maak is een nieuw script en zet er in:
<?php
return 'blaat';
?>

En doe in een ander script:
<?php
$content = str_replace('[tarieven]', include 'datnieuwscript.php', $content);
?>

Je zult ziet dat er blaat komt i.p.v '[tarieven]'.
ja, maar het is een hele pagina.. met PHP code.. en tabellen enzoo.. dus dat werkt niet zo..
Dan kun je het beste die bovenste oplossing (Output buffering) gebruiken.

Gewoon ff proberen je hoeft het niet te snappen ;D

edit:

Die laatste functie is niet goed in mijn 1e bericht:

<?php
ob_start();
include 'depagina.php';
$sContent = ob_get_contents();
//Verkeerd: ob_end_flush();
ob_end_clean();
?>
goede instelling martijn....
@wes:
Door iets te proberen kun je ook beter iets beginnen te begrijpen.

Reageren