template parser

Door Mebus Hackintosh, 22 jaar geleden, 5.931x bekeken

Hier mijn template parser. Hij is erg simpel en opzich makkelijk te begrijpen en maar 5 kb groot is:)

uitleg is er nog niet maar een voorbeeld wel. Ik denk dat je hier dan al een eindje mee komt:) Tot dan srry dat er nog geen echte uitleg bij zit.

Als er toch vragen zijn stel ze gerust en ik of iemand anders probeert je te helpen

Graag als er fouten inzitten of dingen die beter kunnen laat dat dan even weten

voorbeeld:

header.TPL

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">


    <head>
            <title>{titel}</title>


    </head>


<body>


footer.TPL

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
</body>
</html>


header.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$titel
= 'PHPhulp rules!!!';

$PARSER->gettemp('header'); // Zal nu header.TPL oproepen nog niet geparst!

$PARSER->parse('header', 'titel', $titel); // Zal {titel} verplaatsen met $titel, parsen dus

$PARSER->display('header'); // geparste template tonen

?>


footer.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$PARSER
->gettemp('footer'); // Zal nu footer.TPL oproepen nog niet geparst!

$PARSER->display('footer'); // geparste template tonen

?>


index.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

include('PARSER.class.php');

$PARSER = new PARSER;

include('header.php');

echo 'hoi'."\n";

include('footer.php');

?>


zal tonen in broncode dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">


    <head>
            <title>PHPhulp rules!!!</title>


    </head>


<body>
hoi
</body>
</html>


heb het zo gedaan dat je already send errors ken vermijden include je de header op de juiste plek.

De andere functie's zal ik later voorbeelden van geven. Maar hiermee zou je dus al je pagina geparst kunnen tonen maar nog niet met while lusjes

Gesponsorde koppelingen

PHP script bestanden

  1. template-parser

 

Er zijn 14 reacties op 'Template parser'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
22 jaar geleden
 
0 +1 -0 -1
Misschien is het wel makkelijk om een voorbeeld te geven..
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
Ja oké:) Zal dan toch even snel een vorbeeldje geven:)
B a s
B a s
22 jaar geleden
 
0 +1 -0 -1
Nog een vraagje; Wat is hier het voordeel van ten opzichte van gewone includes met een config bestand?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
include("config.php");

$GLOBAL['page_title'] = "Titel van pagina";
$GLOBAL['page_keywords'] = "Keywords,word,words";
$GLOBAL['page_description'] = "Voorbeeld pagina met keywords en een titel";

include("html_top.php");

echo "<h1>Hoi</h1>";

echo "<p>Tekst</p>";

include("html_bot.php");
?>
Han eev
Han eev
22 jaar geleden
 
0 +1 -0 -1
Wel leuk maar je voorbeeld klopt niet echt. ik denk dat je een error krijgt van dat de class al bestaat omdat je in je footer de parser laad en in de header ook al. en dus 2x. dus ik denk dat je een error krijgt
Jelmer -
Jelmer -
22 jaar geleden
 
0 +1 -0 -1
Het leuke van een object (lees: instance van klasse) is dat het allemaal zijn eigen variabelen heeft. Je kan met de functies dus de variabelen van het object veranderen. Als ik het goed snap moet ik bij jouw script altijd een naam meegeven van hoe dat deel van het template heet. Zou het niet mooier zijn om gewoon per deel een object te maken? Ik vermoed dat het daarmee ook wat overzichtelijker wordt, wat duidelijker allemaal. Nu gebruik je je object een beetje als een bibliotheek. Ik vind het een beetje aanvoelen als allemaal losse functies, zoals mysql_connect en mysql_query.

Ow, en in index.php include je nu 2 maal je templateparser, en maak je dus 2 maal een object aan, en declareer je 2 maal je klasse. Dat levert een foutje op ;)

Het is weer eens een andere aanpak, misschien zal dit andere mensen wel bevallen. Ik ben te gehecht aan mijn objecten-voor-alles :)
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
Na zelf omdat mooier vind inplaats van allemaal variabelen hebben en echo's

En ook omdat met grote website's de pagina sneller zal laden

+

Dat je html code gescheiden houd van je php code

dus in een while lus geen echo's meer maar in een template bestand:)

En vaak is het ook onoverzichtelijk zo een echo met allemaal html tags daarbinnen in]

GR. mebus
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
@han inderdaad srry;)

edit: heb het een en andere verandert;)
edit: Hoop dat dan ook meer leer over classes en zo deze template parser nog meer kan verbeteren
Pim Vernooij
Pim Vernooij
22 jaar geleden
 
0 +1 -0 -1
@mebus: een grote website zal _niet_ sneller laden dmv een template parser... Iedere keer als een item geparsed moet worden, worden er een hoop functies uitgevoerd, waaronder wat regexen... dat duurt langer dan een variabele echo'en...

Ik gebruik zelf deels om die reden nooit een template parser... een andere reden is dat PHP zelf al een prima parser is.. waarom iets erom heen bouwen, als het echo'en van variabelen precies hetzelfde doet, makkelijk en sneller is ?
Legolas
Legolas
22 jaar geleden
 
0 +1 -0 -1
@Pim: als je stack-based doet is t redelijk snel
Pim Vernooij
Pim Vernooij
22 jaar geleden
 
0 +1 -0 -1
Die term ken ik nog niet, Legolas.. En google define levert ook niets op...
Jelle Posthuma
Jelle Posthuma
22 jaar geleden
 
0 +1 -0 -1
Ik zal me eens verdiepen in templates...
Majid Ahddin
Majid Ahddin
22 jaar geleden
 
0 +1 -0 -1
Zie Smarty
Drodr
Drodr
20 jaar geleden
 
0 +1 -0 -1
Bedankt man, dit is de eerste template parser die ik begrijp :P
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jurgen assaasas
Jurgen assaasas
20 jaar geleden
 
0 +1 -0 -1
Smarty is ook niet ingewikkeld als je de documentatie doorleest.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. template-parser

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.