Re: [心得] ^^"列印陣列的一點小心得

看板PHP作者 (霸格尼尼)時間18年前 (2008/02/08 09:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
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
文章代碼(AID): #17gw-sEc (PHP)
文章代碼(AID): #17gw-sEc (PHP)