[PHP] 'Matched' var weer iets anders dan een 'normale' var?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Ik probeer een dus een template-class in elkaar te prutsen. Wat het als eerste moet doen is het vervangen van variabelen. Er wordt een bestand ingeladen waarin alle HTML & variabelen staan. Ik gebruik een stukje regexp om de variabelen in het ingeladen bestand te matchen. Het gematch-te moet vervangen worden door een bestaande variabele die aanwezig in PHP-bestand waaruit de class wordt aangeroepen.

Het probleem is dat het matchen wel lukt, en dat daar zelf wel de goede waarde uitkomt, maar het correct aanroepen van de variabele lukt niet. Met $GLOBALS kan ik trouwens vanuit de class wel de variabele correct aanroepen, maar met de gematch-te waarde niet, daar ligt het probleem volgens mij. Hoe kan ik dit oplossen? Thx!

Stukje code kan handig zijn trouwens:

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


class template {

    function loadFile ($file) {

        $error = FALSE;
        $open = @fopen ($file, "r") or $error = TRUE;
        
        if (!$error) {

            $file_content = addslashes (fread ($open, filesize ($file)));
            fclose ($open);

        }

        return $file_content;

    }

    function parse ($string) {

        $expression = "/(\{)(.+?)(\})/";
        $replace = $this->parseVars ("\\2");
        $string = preg_replace ($expression, $replace, $string);

        return $string;

    }

    function parseVars ($string) {

        return $GLOBALS[$string];
        //Stel: De variable 'blaat' is aanwezig in het bestand
        //waaruit de class aangeroepen wordt, als je werkt met
        //'$GLOBALS["blaat"] werkt dat wel, maar met de gemach-
        //te waarde lukt het niet...

    }
}


?>

[ Voor 36% gewijzigd door AK47 op 01-02-2003 18:16 . Reden: + Code ]


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Ik snap niet helemaal wat jouw probleem nu is.
Je kunt wel variabelen vervangen in die ingelade file, maar je kunt ze dan niet uitvoeren? Of gaat het vervangen niet goed? Geef anders ff een voorbeeld (je code helpt ook niet veel, heb namelijk geen include file, uitvoer file, etc.).

Acties:
  • 0 Henk 'm!

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Er wordt bijv. een text file ingelezen met '{blaat}' erin. 'blaat' wordt heel netjes gematched, en wordt naar de functie parseVars gestuurd, maar bij het returnen mbv $GLOBALS, wordt er gewoon een lege variabele geretourneerd...