Moderator |
|
ob_start(); start het bufferen van output.
Dit wil zeggen dat ie wacht met het verzenden van de pagina totdat het hele script is geladen.
Dit stelt je in staat midden in je pagina (dus na <html><head> etc.) een cookie te setten, wat normaal niet zou kunnen, omdat cookies onderdeel zijn van de headers van een pagina.
Met ob_start() word er 'gewacht' met het verzenden van de headers totdat de hele pagina (headers+pagina zelf) geladen is, en headers en pagina worden dan in de goede volgorde gezet en verstuurd.
Met ob_start zou je dus (nog) slordiger kunnen programmeren, maar dit is dus niet aan te raden.
ob_start kun je ook gebruiken voor het eruit plukken van bepaalde stukken HTML. Dit kan handig zijn wanneer je bijvoorbeeld een mailtje wilt versturen met HTML opmaak ofzo (heb er zo snel geen voorbeeld van; misschien staat er wel iets bij de user contributed notes van http://www.php.net/ob_start/)
Ook is het handig als je met includes werkt waarin bijvoorbeeld een login-menu zit, en waar je, na submitten van gegevens, een sessie moet starten (die default van cookies gebruik maakt).
Je hoeft dan niet een aparte file verwerk_login.php te schrijven die je include voordat je pagina begint - je kan dan het inloggen (het starten van de sessie) afhandelen in dezelfde include als waar het login-formulier staat, zodat je dezelfde functionaliteit in één file kunt houden. |