2010-11-18 14 views
1

我正在構建一個非常輕量級的框架,並且想要自定義模板解析器。我當然知道其他解決方案,如Smarty,但是這對我所需要的東西來說太過矯健。實現循環到模板解析器中

我已經構建了簡單的模板解析器,但從未想出如何使用循環。我正在思考Smarty的foreach循環的概念,或者phpBB的循環塊。不幸的是,我現在沒有時間來查看這些應用程序,那麼在模板分析器中實現循環的最簡單方法是什麼?它必須能夠處理多維數組。

+1

先試一下,然後問你什麼時候卡住了 - 用例子。否則,請支付某人爲你做。 – enobrev 2010-11-18 06:24:01

+0

我只是在尋找一個正確的方向。說實話,我真的不知道要先嚐試什麼。我做了一些googleing,但無法找到任何示例。 – Scott 2010-11-18 06:28:56

回答

0

去phpkerby我認爲這是解決問題的方法

PHP KIRBY

0

下面是如何做到這一點的總體思路...

您需要設置你的循環開始和結束參數。因此,像:

{LOOP_START:users} 
    <p>{name}</p> 
{LOOP_END:users} 

然後在你的模板代碼,你想抓住循環佔位符從{LOOP_START:users}{LOOP_END:users}。你也想抓住這些標籤之間的所有內容。循環訪問數組並替換片段中的變量,然後用新輸出替換整個佔位符。這裏的基本思路:

$output = your_method_to_get_the_full_template_contents(); 
$loop_with_tags = your_method_to_find_the_loop_tags_and_content($output, 'users'); 
$loop_inside_tags = your_method_to_get_the_loop_contents($loop_with_tags); 

$loop_output = ''; 
foreach($users as $user) { 
    $loop_output .= str_replace(array_keys($user), array_values($user), $loop_inside_tags); 
} 

$output = str_replace($loop_with_tags, $loop_output, $output);