Include in variable

Status
Niet open voor verdere reacties.

jeroendenoot

Terugkerende gebruiker
Lid geworden
14 mrt 2005
Berichten
1.492
Hallo mensen,
Hoe koppel je een pagina aan een variable in PHP? Ik had het eerst zo gedaan:

PHP:
$variable = include("pagina.php");

Maar dat werkte niet, want de pagina werd gewoon meteen geschreven. Hoe moet het dan? Of kan het gewoon niet?
 
Laatst bewerkt:
Na een tijdje googlen heb ik het gevonden:

PHP:
<?php 
$variable = implode("", file("$pagina")); 
?>
 
Laatst bewerkt:
Geplaatst door JPeetje
file_get_contents() (deze zou ik in jouw situatie gebruiken)
Ik niet.

(PHP 4 >= 4.3.0, PHP 5)

Vanaf PHP 4.3.0 pas, je kan beter zelf 'n functie schrijven die implode ( '', file ( $file ) ); terug geeft. Weet je zeker dat je het altijd kunt gebruiken :p
 
Maar de PHP-code die je in het bestand wat je in de variable zet, word gewoon weergeven als <?php ... ?>. Is er een manier om ervoor te zorgen dat de PHP-codes wel werken?
 
Geplaatst door jeroendenoot
Maar de PHP-code die je in het bestand wat je in de variable zet, word gewoon weergeven als <?php ... ?>. Is er een manier om ervoor te zorgen dat de PHP-codes wel werken?
Wat dacht je van gewoon includen, zonder in een variabele te zetten?
 
Ik heb het net gevonden:

PHP:
ob_start(); 
include "pagina.php"; 
$variable = ob_get_contents(); 
ob_end_clean();

Dat werkt ook en vind ik makkelijker in gebruik dan eval().
 
Don't: ob_start()
ob_start() is een functie die de output (dat wat je naar de browser van de bezoeker stuurt, HTML codes dus) buffert. De voornamelijkste reden die men gebruikt om deze functie in dienst te nemen is dat ze deze foutmelding niet krijgen:
Cannot modify header information - headers already sent by (output started at ...\test.php:...) in ...\test.php on line ...
DIT IS GEEN OPLOSSING !
Dit is een lapmiddel, hoogst waarschijnlijk is de oorzaak te wijden aan het feit dat je code gewoonweg niet goed in elkaar steekt.
Een echte oplossing kun je zoeken in het scheiden van PHP en HTML codes, zoals hierboven uitgelegd wordt.

Gebruik je ob_start() om andere redenen, dan is het bovenstaande niet van toepassing.
Bron: http://dad.jpeetje.nl/ JP's Do's and Dont's
 
Gebruik je ob_start() om andere redenen, dan is het bovenstaande niet van toepassing.
Ik gebruik ob_start() toch inderdaad voor een andere reden? Dan mag het toch wel...?
 
Van mij mag je alles. Volgens mij is het nog steeds hetzelfde, de output die naar de browser hoort gestuurd te worden, vang jij op met ob_start().
 
Geplaatst door masterprut
Van mij mag je alles. Volgens mij is het nog steeds hetzelfde, de output die naar de browser hoort gestuurd te worden, vang jij op met ob_start().
Hij doet het om een hele andere reden, hij doet het niet om een Warning te vermijden.


Al zijn er wel betere methoden om dit te doen, maar dat zou waarschijnlijk vereisen dat je je hele code om moet gooien.
 
Geplaatst door JPeetje
Al zijn er wel betere methoden om dit te doen, maar dat zou waarschijnlijk vereisen dat je je hele code om moet gooien.
Liever niet...:D.
 
Daar is het alleen niet voor bedoeld. Je kunt beter iets als file_get_contents gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan