Bestand aanpassen en parsen.

We moeten natuurlijk, het bestand kunnen aanpassen. dit gaan we doen door middel van preg_replace. we gaan de functie set maken, waarmee we {iets} kunnen veranderen in bijvoorbeeld Hallo. dit gaat door middel van de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    public function set($pattern, $replacement) {
        if($this->getfile == false) { //Kijken of het bestand al gelezen is.
        $this->getfile(); //Zo niet, bestand inlezen.
        }
        $this->tpl = preg_replace("#\{".$pattern."\}#si", $replacement, $this->tpl); //{iets} wordt veranderd in iets.
    }
?>


dit is een simpele code, deze spreekt voor zich. als je niks van preg_replace snapt, kun je kijken op PHP.net: preg_replace.

natuurlijk moeten we ook het bestand nog parsen. dus de inhoud echo'en. Dit gaan we doen door middel van de volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    public function parse() {
      if($this->errors == '') { //Kijken of de errors leeg zijn
       if($this->getfile == false) { //Als het bestand nog niet gelezen is, laten lezen.
        $this->getfile();
        }

                return $this->tpl; //De inhoud returnen
        }else{
            return $this->errors; //Als er errors zijn, deze returnen.
        }
    }

?>


de hele code is nu als volgt:

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
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
<?php
class TemplateParser {
     var
$file = 'start.tpl'; //Het standaard bestand, deze gebruikt hij als er geen bestand wordt opgegeven
     var $errors = ''; //Hier komen de errors in
                var $getfile = false; //Komt nog...
                var $tpl = ''; //Komt nog...
                var $blockcontent = array(); //Komt nog...



    public function __construct($file = false) {
     if($file != "" && $file != false) { //Kijken of $file niet leeg is.
      if(!preg_match("#(.+?).tpl#si", $file)) { //Kijken of het bestand de exentie .tpl heeft
        $this->errors .= "<b>TemplateParser Error:</b> Het bestand moet de exentie .tpl hebben!<br />";
        }

        if(!file_exists($file)) { //Kijken of het bestand bestaat
        $this->errors .= "<b>TemplateParser Error:</b> het bestand ".$file." bestaat niet!<br />";
        }

    
        $this->file = $file;
        
    
        
    }
}

public function getfile() {
        if(file_exists($this->file)) { //Kijken of bestand bestaat
            $this->tpl = file_get_contents($this->file); //Inhoud verkrijgen
            $this->getfile = true; //Bestand is opgehaald
        }
}

    public function set($pattern, $replacement) {
        if($this->getfile == false) { //Kijken of het bestand al gelezen is.
        $this->getfile(); //Zo niet, bestand inlezen.
        }
        $this->tpl = preg_replace("#\{".$pattern."\}#si", $replacement, $this->tpl); //{iets} wordt veranderd in iets.
    }
public function parse() {
      if($this->errors == '') { //Kijken of de errors leeg zijn
       if($this->getfile == false) { //Als het bestand nog niet gelezen is, laten lezen.
        $this->getfile();
        }

                return $this->tpl; //De inhoud returnen
        }else{
            return $this->errors; //Als er errors zijn, deze returnen.
        }
    }

}

?>


we kunnen de code nu al gebruiken. dat doen we door een bestand: index.tpl aan te maken. met de volgende inhoud:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
{titel}<br />
{tekst}<br />


we parsen dit bestand met de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
require("naam_van_bestand_waar_de_class_in_staat.php");
$template = new TemplateParser("index.tpl"); //Bestand index.tpl verkrijgen
$template->set("titel", "Titel van de pagina"); //titel veranderen
$template->set("tekst", "Tekst van de pagina"); //tekst veranderen
echo $template->parse();
?>


de volgende pagina is niet belangrijk, maar wel handig. het gaat om een block functie

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Bestand Verkrijgen en Lezen.
  3. Bestand aanpassen en parsen.
  4. De Block Functie

PHP tutorial opties

 
 

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.