Ik heb een tijdje geleden een template systeem gebouwd die een text file met html uitleest en alles tusse {} vervangt door de waarde van een variable. bv.
$user = "ik";
test {user} test >>> test ik test
Ik include hiervoor volgend stukje code vanaf een aparte file:
Dit werkt vrij goed maar nu moet ik een template inlezen, vars vervangen en dit alles naar een variable sturen.
ik zou dus bovenstaand stukje code in een functie willen gieten. het probleem met functies is echter dat je ELKE variable die je wil gebruiken vanuit een bovenliggend php script als "global" moet declareren binnen je functie. Gezien het grote aantal vars doe ik dit liever niet.
Iemand die me kan helpen met het omzetten van mijn include zodat ik een output kan doen naar een var? Dus iets zoals:
Het moet trouwens niet met {userid}, als ik gewoon $userid in mijn text file zou kunnen gebruiken zou het nog beter zijn
Ik vrees echter dat ik voor een totaal andere aanpak ga moeten kiezen...
$user = "ik";
test {user} test >>> test ik test
Ik include hiervoor volgend stukje code vanaf een aparte file:
PHP:
1
2
3
4
5
6
7
8
| <? $html = implode('', file("test.tpl")); $html = preg_replace('/\{(.+?)\}/', '${"\1"}', $html); $html = str_replace('"',"'",$html); eval ("\$html= \"$html\";"); $html = str_replace("'",'"',$html); print $html; ?> |
Dit werkt vrij goed maar nu moet ik een template inlezen, vars vervangen en dit alles naar een variable sturen.
ik zou dus bovenstaand stukje code in een functie willen gieten. het probleem met functies is echter dat je ELKE variable die je wil gebruiken vanuit een bovenliggend php script als "global" moet declareren binnen je functie. Gezien het grote aantal vars doe ik dit liever niet.
Iemand die me kan helpen met het omzetten van mijn include zodat ik een output kan doen naar een var? Dus iets zoals:
PHP:
1
2
3
4
5
6
7
8
9
| <? function parse_template($template_file) $html = implode('', file($template_file)); $html = preg_replace('/\{(.+?)\}/', '${"\1"}', $html); $html = str_replace('"',"'",$html); eval ("\$html= \"$html\";"); $html = str_replace("'",'"',$html); return $html; ?> |
Het moet trouwens niet met {userid}, als ik gewoon $userid in mijn text file zou kunnen gebruiken zou het nog beter zijn
[ Voor 13% gewijzigd door WhiteDog op 11-01-2005 12:19 ]