簡體   English   中英

什么是使用php創建模板的最佳方法?

[英]Whats the best way to create templates using php?

我有一個收集模板並在連接所有模板后顯示最終輸出的類。

class Template{

$private $output = '';

public function Load_Template($template, $data = null){
    ob_start();
    include($template);
    $this->output .= ob_get_clean();
}

public function Display($add_footer = true){
    echo $this->output;
}

}

現在,目前我的模板看起來像這樣。

<h1><?php echo $data['name']; ?></h1>

或更復雜的涉及循環的看起來更像

<ul>
  <li>
  <?php foreach($data as $user){ ?>
   <h1><?php echo $user['name']; ?></h1>
  <?php } ?>
  </li>
</ul>

實際上,那里的數據比它們中的要多,但我肯定你們明白了。 現在,我聽說人們說擁有這樣的模板會更好

<h1>{name}</h1>

要么

<ul>
  <li>
   <h1>{name}</h1>
  </li>
</ul>

然后使用str_replace函數...現在,如果即時通訊使用foreach循環,我將如何完成類似的工作...我應該改變班級嗎?如果可以,我可以就如何實現獲得一些想法...你們建議與

對於這些“ {tags}”類型模板,您有一個非常流行的引擎: Smarty

聰明人太多余了! 具有剪切頁面功能的課程就足夠了。

每種模板語言都有其解決問題的方式。 您可以使用Smarty之類的標准語言,而不必從頭開始編寫自己的模板語言。

如果您要編寫自己的代碼,則至少需要一個可讓您表達循環和條件的構造。 我以前使用過的一種簡單方法是:

<!-- BEGIN conditional_or_looped_block_named_foo -->
Stuff that may appear zero or more times
<!-- END conditional_or_looped_block_named_foo -->

當然,從一種語言到另一種語言,語法有很大的不同,但是基本方法是相同的:在您要隔離和重復(或省略)的代碼部分周圍加上一些標記。

這應該給您一個想法: http : //www.handyphp.com/index.php/PHP-Resources/Handy-PHP-Tutorials/Creating-Your-First-Template-Driven-PHP-Website-Part-2.html

我通過快速搜索找到了它,它具有執行您所要求的代碼的功能,它可以搜索並替換為您創建的簡單變量。

因此,您的foreach()調用不會回顯,而是存儲在變量中,然后在模板中用{users}替換該變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM