Hallo,
ik heb een raar probleem met een simpel eigen geschreven tempate systeem in php. Het probleem is dat de tekst die tussen de top en de footer op de verkeerde plek terecht komt, namelijk onder de </html> tag. Het probleem is hier te zien: http://dev.wilcodl.nl/test/layout/index.php
Kan iemand mij hier mee helpen?
De code van index.php:
De code van design.inc.php: (de fout zit ergens in de functie replace() lijkt mij)
De gebruikte html template (design.html):
ik heb een raar probleem met een simpel eigen geschreven tempate systeem in php. Het probleem is dat de tekst die tussen de top en de footer op de verkeerde plek terecht komt, namelijk onder de </html> tag. Het probleem is hier te zien: http://dev.wilcodl.nl/test/layout/index.php
Kan iemand mij hier mee helpen?
De code van index.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| <?php include "design.inc.php"; echo makeHeader(); echo "Tekst tussen header en top. (###BODY###)"; echo makeTop(); echo "Deze tekst zou tussen de top en footer moeten. op plek van ###CONTENT### dus."; echo makeFooter(); ?> |
De code van design.inc.php: (de fout zit ergens in de functie replace() lijkt mij)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| <?php $start = 0; $design = file_get_contents("design.html"); function replace($sep_label, array $labels = array()){ global $start, $design; if ($sep_label != "END"){ $sep_label = '###'.$sep_label.'###'; $pos = strpos($design, $sep_label); $rv = substr($design, $start, $pos); $start += strlen($sep_label) + strlen($rv); } else { $rv = substr($design, $start); } foreach ($labels as $key => $value){ $rv = str_replace('###'.$key.'###', $value, $rv); } return $rv; } function makeHeader(){ $rep = array( "HEADER" => '<link rel="stylesheet" type="text/css" href="default.css" />' ); return replace("BODY", $rep); } function makeTop(){ $rep = array( "MENU" => "het menu", "LANG" => "taaliconen" ); return replace("CONTENT", $rep); } function makeFooter(){ $rep = array( "FOOTER" => '©2009 sitenaam | <a href="http://www.wilcodl.nl">WDL Webdevelopment</a>' ); return replace("END", $rep); } ?> |
De gebruikte html template (design.html):
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- Design by Free CSS Templates http://www.freecsstemplates.org Released for free under a Creative Commons Attribution 2.5 License --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>###TITLE###</title> <meta name="keywords" content="" /> <meta name="description" content="" /> ###HEADER### </head> <body> ###BODY### <div id="header"> <div id="logo"> <h1><a href="#">Websitenaam</a></h1> <h2><a href="http://www.freecsstemplates.org/">Ondertitel</a></h2> </div> <div id="menu"> <ul> <li class="first"><a href="#">My Blog</a></li> <li><a href="#">My Photos</a></li> <li><a href="#">My Favorites</a></li> <li><a href="#">About Me</a></li> <li><a href="#">Contact Me</a></li> </ul> </div> </div> <div id="content"> <div id="colOne"> <div class="post"> <h2 class="title">Welcome to Neonix!</h2> ###CONTENT### </div> </div> <div id="colTwo"> Lorem ipsum. <div style="clear: both;"> </div> </div> </div> <div id="footer"> <p>###FOOTER###</p> </div> </body> </html> |