亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

教你如何用PHP制作靜態網站的模板框架

2024-05-04 22:53:39
字體:
來源:轉載
供稿:網友
菜鳥學堂:
    第一個目的是談論得最多的目的,它設想的情形是:一組程序員編寫用于生成頁面內容的php腳本,同時另一組設計人員設計html和圖形以控制頁面的最終外觀。分離功能和布局的基本思想就是使得這兩組人能夠各自編寫和使用獨立的一組文件:程序員只需關心那些只包含php代碼的文件,無需關心頁面的外觀;而頁面設計人員可以用自己最熟悉的可視化編輯器設計頁面布局,無需擔心破壞任何嵌入到頁面的php代碼。

  如果你曾經看過幾個關于php模板的教程,那么你應該已經明白模板的工作機制??紤]一個簡單的頁面局部:頁面的上方是頁頭,左邊是導航條,其余部分是內容區域。

  可以看出頁面如何由模板構造而成:main模板控制著整個頁面的布局;header模板和leftnav模板控制著頁面的公共元素?;ɡㄌ枴?#123;}”里面的標識符是內容占位符。使用模板最主要的好處在于界面設計者能夠按照自己的意愿編輯這些文件,比如設置字體、修改顏色和圖形,或者完全地改變頁面的布局。界面設計者可以用任何普通html編輯器或者可視化工具編輯這些頁面,因為這些文件都只包含html代碼,沒有任何php代碼。

  php代碼全部保存到單獨的文件中,這個文件也就是由頁面url實際調用的文件。web服務器通過php引擎解析該文件,然后把結果返回給瀏覽器。一般地,php代碼總是動態地生成頁面內容,比如查詢數據庫或者執行某種計算等。下面是一個例子:

// 此處的php代碼設置$content使其包含合適的頁面內容$tpl->assign('content', $content); $tpl->parse('header', 'header'); $tpl->parse('leftnav', 'leftnav'); $tpl->parse('main', 'main'); $tpl->fastprint('main'); ?>

  這里我們使用的是流行的fasttemplate模板類,但其基本思路對于其他許多模板類來說都一樣。首先你實例化一個類,告訴它到哪里去尋找模板文件以及哪一個模板文件與頁面的哪部分對應;接下來是生成頁面內容,把結果賦予內容的標識符;然后,依次解析各個模板文件,模板類將執行必要的替換操作;最后把解析結果輸出到瀏覽器。

  這個文件完全由php代碼構成,不包含任何html代碼,這是它最大的優點?,F在,php程序員可以集中精力編寫生成頁面內容的代碼,而不必為了如何生成html去正確地格式化最終頁面而擔心。

  很容易看出采用模板還有第二個好處。如上例所示,頁面左邊的導航條單獨保存為一個文件,我們只需編輯這一個模板文件就可以改變網站所有頁面左邊的導航條。

  避免頁面元素重復

  “這確實不錯”,你也許會想,“我的網站主要就是由大量的靜態頁面構成?,F在我可以從所有頁面中刪除它們的公共部分,要更新這些公共部分實在太麻煩了。以后我就可以用模板制作出很容易維護的統一頁面布局?!钡虑椴⒎沁@么簡單,“大量的靜態頁面”道出了問題的所在。

  請考慮上面的例子。這個例子實際上只有一個example.php頁面,它之所以能夠生成整個網站的所有頁面,是因為它利用了url中的查詢字符串從數據庫之類的信息源動態地構造出頁面。

  我們之中的大多數人所運行的網站并不一定都有數據庫支持。我們的網站大多數由靜態頁面構成,然后用php在這里、那里加上一些動態功能,比如搜索引擎、反饋表單等。那么,如何在這種網站上應用模板呢?

  最簡單的方法是為每一個頁面復制一份php文件,然后在每一個頁面中把php代碼里代表內容的變量設置成合適的頁面內容。例如,假設有三個頁面,它們分別是主頁(home)、關于(about)和產品(product),我們可以用三個文件分別生成它們。這三個文件的內容都類如:

<p>希望你能夠喜歡本網站</p>"; $tpl->assign('content', $content); $tpl->parse('header', 'header'); $tpl->parse('leftnav', 'leftnav'); $tpl->parse('main', 'main'); $tpl->fastprint('main'); ?>

  顯然,這種方法有三個問題:我們必須為每一個頁面復制這些復雜的、牽涉到模板的php代碼,這與重復公共頁面元素一樣使得頁面難以維護;現在文件又混合了html和php代碼;為內容變量賦值將變得非常困難,因為我們必須處理好大量的特殊字符。

  解決這個問題的關鍵就在于分離php代碼和html內容,雖然我們不能從文件中刪除所有的html內容,但可以移出絕大多數php代碼。

  靜態網站的模板框架:

ob_end_clean(); $tpl->assign('content', $content); $tpl->parse('header', 'header'); $tpl->parse('leftnav', 'leftnav'); $tpl->parse('main', 'main'); $tpl->fastprint('main'); } ?>
    agestart函數首先創建并設置了一個模板實例,然后啟用輸出緩存。此后,所有來自頁面本身的html內容都將進入緩存。pagefinish函數取出緩存中的內容,然后在模板對象中指定這些內容,最后解析模板并輸出完成后的頁面。

 這就是整個模板框架全部的工作過程了。首先編寫包含了網站各個頁面公共元素的模板,然后從所有頁面中刪除全部公共的頁面布局代碼,代之以三行永遠無需改動的php代碼;再把fasttemplate類文件和prepend.php加入到包含路徑,這樣你就得到了一個頁面布局可以集中控制的網站,它有著更好的可靠性和可維護性,而且網站級的大范圍修改也變得相當容易。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情久久久久久| 久久国产一区二区三区| 欧美成人网在线| 97在线视频免费| 国产精品www| 欧美成人小视频| 18性欧美xxxⅹ性满足| 啪一啪鲁一鲁2019在线视频| 亚洲欧美日韩精品久久奇米色影视| 国产不卡视频在线| 4438全国成人免费| 日韩av中文在线| 成人字幕网zmw| 日韩精品视频中文在线观看| 性欧美激情精品| 伊人久久大香线蕉av一区二区| 亚洲福利视频免费观看| 日本一欧美一欧美一亚洲视频| 欧美激情高清视频| 日韩中文字幕免费| 国产成人精品亚洲精品| 91精品国产综合久久香蕉最新版| 国产精品夫妻激情| 国产精品吹潮在线观看| www.欧美免费| 成人免费大片黄在线播放| 97视频在线观看视频免费视频| 91天堂在线观看| 亚洲一品av免费观看| 国产精品一区二区性色av| 亚洲欧美日韩精品久久亚洲区| 欧美激情乱人伦一区| 九九精品在线播放| 色yeye香蕉凹凸一区二区av| 欧美日韩在线看| 国产精品美女久久久久av超清| 国产成人一区二区三区电影| 疯狂做受xxxx高潮欧美日本| 成人免费视频网址| 国产亚洲美女精品久久久| 最近2019中文字幕一页二页| 久久露脸国产精品| 日韩久久精品电影| 国产偷亚洲偷欧美偷精品| 亚洲国产精品热久久| 国产精品嫩草影院一区二区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲美女av网站| 91精品久久久久久久久久| 国语自产偷拍精品视频偷| 最近2019年好看中文字幕视频| 欧美日韩国产中文精品字幕自在自线| 日韩av在线网页| 日韩av在线免费看| 中文字幕在线成人| 中文字幕亚洲图片| 亚洲成人久久一区| 日韩美女免费观看| 亚洲成人在线网| 黑人巨大精品欧美一区免费视频| 91在线精品视频| 亚洲色图狂野欧美| 日韩激情第一页| 97免费视频在线| 精品无码久久久久久国产| www.久久久久| 国产精品视频白浆免费视频| 久久最新资源网| 欧美野外猛男的大粗鳮| 成人h片在线播放免费网站| 国产精品入口日韩视频大尺度| 成人福利视频在线观看| 国产精品欧美亚洲777777| 久久夜精品香蕉| 久久精品国产欧美亚洲人人爽| 亚洲精品国产精品乱码不99按摩| 精品国内产的精品视频在线观看| 最新国产成人av网站网址麻豆| 国产精品久久久久久久9999| 亚洲国产91色在线| 日韩女在线观看| 色狠狠av一区二区三区香蕉蜜桃| 欧洲成人免费视频| 大伊人狠狠躁夜夜躁av一区| 亚洲国产精品久久精品怡红院| 欧美激情按摩在线| 日韩av网址在线观看| 亚洲第一页中文字幕| 久久国产天堂福利天堂| 欧美高清一级大片| 久久影视电视剧免费网站| 欧美乱大交xxxxx另类电影| 国产精品久久91| 自拍偷拍亚洲区| 精品国产欧美一区二区五十路| 在线视频欧美日韩精品| 欧美日韩中文字幕综合视频| 夜夜嗨av一区二区三区免费区| 免费99精品国产自在在线| 欧美成人免费观看| 精品久久久久久久久久ntr影视| 91影院在线免费观看视频| 欧美精品久久久久a| 国产999视频| 一本一本久久a久久精品综合小说| 欧美精品福利在线| 海角国产乱辈乱精品视频| 国产日韩欧美91| 色偷偷偷亚洲综合网另类| 国产精品电影观看| 亚洲午夜色婷婷在线| 亚洲国产精品va在线观看黑人| 日韩精品在线免费观看视频| 欧美激情一区二区三区高清视频| 亚洲第一视频在线观看| 欧美激情在线视频二区| 91亚洲精华国产精华| 91色p视频在线| 欧美日韩人人澡狠狠躁视频| 尤物yw午夜国产精品视频| 亚洲精品v天堂中文字幕| 一区二区三区回区在观看免费视频| 亚洲女人被黑人巨大进入al| 青草青草久热精品视频在线网站| 精品久久久久久久久久久久久久| 欧美黑人极品猛少妇色xxxxx| 青青草一区二区| 国产亚洲免费的视频看| 亚洲精品国产福利| 国产精品亚洲美女av网站| 成人黄色在线免费| 欧美精品在线看| 亚洲欧美一区二区精品久久久| 欧洲成人午夜免费大片| 色一情一乱一区二区| 中文字幕无线精品亚洲乱码一区| 久久久精品一区二区| 国产精品电影在线观看| 成人亚洲欧美一区二区三区| 亚洲最新av在线网站| 日韩免费黄色av| 秋霞成人午夜鲁丝一区二区三区| 日韩中文字幕精品视频| 色综合久久中文字幕综合网小说| 日韩av综合中文字幕| 亚洲免费一级电影| 久久九九国产精品怡红院| 成人xvideos免费视频| 91精品在线播放| 日韩成人激情影院| 欧洲s码亚洲m码精品一区| 精品国产乱码久久久久久虫虫漫画| 精品一区二区三区四区在线| 色综合久久中文字幕综合网小说| 8x海外华人永久免费日韩内陆视频| 欧美日韩中文字幕综合视频| 国产成人精品久久二区二区| 九九热精品在线| 国产成人鲁鲁免费视频a| 国产精品国模在线| 91中文字幕在线| 国产99久久精品一区二区永久免费| 精品久久久久久久久久久久| 久久精彩免费视频|