作者buganini (霸格尼尼)
看板PHP
标题Re: [心得] ^^"列印阵列的一点小心得
时间Fri Feb 8 09:26:11 2008
PHP本身就可以用来做template 什麽都不必装
虽然简陋了点
用字串代换和eval()就可以达成简单的模板
function render($template, $var){
$t=file_get_contents($template);
foreach($var as $k=>$v){
$t=str_replace('{{'.$k.'}}',$v,$t);
}
eval('?>'.$t.'<?php ');
}
假设template file叫test.tpl:
===============
{{KERKER}}
<?php for($i=0;$i<10;++$i)echo $i.', ';?>
===============
然後用
render('test.tpl', array('KERKER'=>'LALA'));
那麽输出会是
LALA
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
要做重复区块的话
一个选择是用regular expression做
这样可以让模板语言看起来比较高级
不过效率就会卡在regex
另一个方式是约定好变数名称
template里面直接用PHP印出来
以上方法的好处是简单快速
坏处是 让使用者自订template时会有安全问题
因为template里面可以随意写PHP
如果仅限管理员使用的话倒是不错
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.126.12