Webprogramozás arr PHP info Meta kulcsszavak cikk cimkékbő
(#2) Gabor válasza erre: (#1) donrobertito 2013.01.25. 09:40

Gabor
Gabor
Szerkesztő

Szia!
Hosszú távon valószínűleg jobban megéri úgy átstruktúrálni a programot, hogy ami már a headerben kell az a megfelelő időben rendelkezésre álljon. Viszont ideiglenes megoldásként jó hasznát veheted a kimenet bufferelésének. Vagyis a php képes arra, hogy mikor a kimenetre írna és ezzel a böngészőnek küldené az adatokat (echo, print) akkor ehelyett egy bufferben (ideiglenes tároló) gyűjti azokat. Később pedig ezt egyben el lehet küldeni, vagy kinyerni a tartalmát és tetszőlegesen feldolgozni.
Így megteheted, hogy amit az index.php kiírna azt valójában nem küldi el, ezután hívod a headert az index.php végén, és így már meglesznek a változók, majd elküldöd az index.php kimenetét végül a footert Lássuk a gyakorlatban.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?php
//ez az index.php
 
// eddig itt volt az include 'header.php';
// ehelyett most elkezdjük a kimenetet bufferelni, 
// még mielőtt bármit elküldenénk
ob_start();
 
/* itt jönt az index.php tartalma 
   definiálod a megfelelő változókat,
   kiírod az oldal törzsét */
 
// itt jönne az include 'footer.php'
// de most előbb még,
 
$htmlcontent = ob_get_contents();
ob_end_clean();
 
include 'header.php';  //header
echo $htmlcontent;  // amit az index.php kiírt
include 'footer.php';  // footer