Beste leden ik heb hier dus een hele simpele template parser:
------ index.tpl
<html>
<head>
<title>{titel}</title>
</head>
<body>{inhoud}</body>
</html>

------ index.php
<?php
include("class.template.php");
$file = "index.tpl";
$titel = "Voorbeeld";
$Template = new Template;
$Template->LoadTemplate($file);
$Template->Replace("titel", $titel);
$Template->Replace("inhoud", "Een simpel voorbeeld.");
$Template->PrintTemplate();
?>

------ class.template.php
<?php
class Template {
var $page = "";
var $load = false;

function LoadTemplate($url){
$this->page = "";
if(file_exists($url)){
$this->page = file_get_contents($url);
$this->load = true;
}else{
$this->load = false;
$this->page = "Couldn't load the template file!";
}
}

function Replace($var, $what){
if($this->load){
$var = '{' . $var . '}';
$this->page = str_replace($var, $what, $this->page);
}
}

function PrintTemplate(){
echo($this->page);
}
}
?>

Lekker klein,
nou wil ik strings gaan toevoegen die verplaatst worden:
bijvoorbeeld {poll} wordt vervangen door inc/poll.php, {datum} wordt vervangen door inc/datum.php. Ik heb dit geprobeerd met fopen maar krijg de hele tijd Resource id #4 fouten? Ik heb totaalgeen idee wat ze betekenen.
Maar ho moet ik dat doen zodat {iets} ook kan worden ervangen door een bestand die dan wordt ingevoegd ipv tekst?

bvd
robert
of kan ik dit doen met includen?
lijkt mij wel.

{naam} wordt dan <?php include '/map/iets.php' ?>
Dus dan wordt als ik wil dat {inhoud} wordt verplaatst door: inc/inhoud.php het zo:
<?php $Template->Replace("inhoud", <?php include '/map/iets.php' ?> ); ?>

<? ?> in een <? ?> lijkt me sterk?
[php]file_get_contents[/php]?
hij doet het:P
gewoon php simpel houden als je ziet hoe vaak mensen iets vreselijk moeilijk maken met php terwijl toendertijd php werd gemaakt om alles simpel te houden.
tnx
----parser.php
<?php
class Template {
var $page = "";
var $load = false;

function LoadTemplate($url){
$this->page = "";
if(file_exists($url)){
$this->page = file_get_contents($url);
$this->load = true;
}else{
$this->load = false;
$this->page = "Couldn't load the template file!";
}
}

function Replace($var, $what){
if($this->load){
$var = '{' . $var . '}';
$this->page = str_replace($var, $what, $this->page);
}
}

function PrintTemplate(){
echo($this->page);
}
}

$file = "tpl/index.tpl";
$main = "inc/main.php";
$titel = "Voorbeeld";
$Template = new Template;
$Template->LoadTemplate($file);
$Template->Replace("titel", $titel);
$Template->Replace("main", include("inc/main.php"));
$Template->PrintTemplate();
?>


----------index.tpl
<html>
<head>
<title>{titel}</title>
</head>
<body>{main}</body>
</html>

-----main.php
<?php
echo "hahah";
?>



nou krijg ik het wel te zien maar wordt er een 1 achtergeplakt?
http://rwdweb.nl/ zie maar

@niek hoe zou ik dat dan moet doen met file_get_contents():
zo?
<?php
Template->Replace("main", file_get_contents("inc/main.php"));
?>
En ik had ook iets gezien van curl()? En wat is hier het voordeel van?
Geen hulp voor een newbie?
@Robert: * Bumpen * mag pas na 24 uur. Zie de regels. En jij hebt nu 5 posts achter elkaar. Let daar in het vervolg op want het kan reden zijn om het topic te sluiten.

Reageren