Re: [心得] ^^"列印陣列的一點小心得
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章