
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
|
|