簡體   English   中英

如何構造生成HTML的PHP

[英]How to structure php that generates html

我有一個php文件和一堆HTML元素,其中包括:

  1. 標頭
  2. 的CSS
  3. 重復使用的“間隔”元素,靜態
  4. 一堆模板,這些模板將從PHP代碼中獲取要插入內容的參數

基本上,我想知道將所有這些文件放入其中的正確方法。我想我應該在我的文件夾中有一個file.css,php就會將其吸收到內存中並放下標題信息。 是否應該將spacer元素另存為“ spacer.html”,PHP會將其一個副本粘貼到字符串中,並根據需要將其放入HTML中? 還是所有這些都應該在PHP中作為字符串常量存在?

對於動態的“模板”元素來說,這有點棘手,因為我不確定如何分隔HTML並讓其具有將參數放入其中的標記。

您應該研究MVC 現在流行的是CodeIgniter 這個想法是您采用這些HTML“模板”並創建(V)iews。 PHP使用(C)ontroller來指導用戶並調用(M)odels來獲取數據,然后將適當的變量發送給瀏覽器的(V)iews。

我注意到其他一些回答者(SP)提到了MVC。 MVC非常重要,因為它使您可以將業務邏輯與“視圖”顯示/ UI層分開,並將數據庫邏輯與業務邏輯分開。

像AlienWebguy一樣,我會推薦Code Igniter,但是還有許多其他適用於PHP的好的框架。

就您所詢問的而言,應該如何構造視圖層和業務邏輯。 如果我有諸如頁眉和頁腳之類的通用內容,我將其放入

view/include/header.phpview/include/footer.php

頭文件通常包含<html>標記,樣式表鏈接,任何常見的javascript腳本文件以及一個常見的頭(例如徽標和導航)。 頁腳文件通常包含版權信息,所有頁腳鏈接和</body></html>

通常,要有效創建視圖,您應該做的就是讓它們處理模型對象以顯示HTML,並在控制器層中完全不生成HTML。 例如

<table>
<?php
foreach ($users as $user) {
    printf('<tr><td>%s</td><td>%s</td></tr>', $user->id, $user->user_name);
}
?>
</table>

這樣做可以避免在錯誤的“層”上散布問題,從而使事情變得更加整潔。

如果您不希望在視圖中直接編寫PHP,則可以做的另一件事是可以使用模板引擎。 代碼點火器包括對模板引擎的支持(但您不必使用)。

我通常建議使用一些不錯的php包括來解決這個問題。

從文件結構的角度來看,我可能會有一個index.php文件-該文件(無需對#4中的模板有太多了解)將概述頁面。 您可以在header.html頁面中調用,也可以將標題放在index.php文件中。

最好將css文件命名為: style.css (這很標准),您可以從頭文件中調用它。

不確定是否要這樣做,但是可以將HTML包含在.php文件中。 您只需將文件命名為: index.php ,然后您的代碼可以是:

<p>This is HTML.</p>

<?php echo("This is PHP."); ?>

然后將它們混合在一起。

暫無
暫無

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

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