導航:首頁 > 編程語言 > php網站模板使用

php網站模板使用

發布時間:2022-05-04 08:15:47

1. 在網上下載了一個php的網站模板怎麼用

想運行PHP,必須要有伺服器。支持PHP的伺服器,據我所知有IIS和apache,配置一下即可。如果不會配你只好到官方網站上去找一下了。
至於配置方法可以查看該網址:http://php.net/manual/en/install.php
祝你成功

2. 如何用PHP製作靜態網站的模板框架

分離功能和布局的基本思想就是使得這兩組人能夠各自編寫和使用獨立的一組文件:程序員只需關心那些只包含PHP代碼的文件,無需關心頁面的外觀;而頁面設計人員可以用自己最熟悉的可視化編輯器設計頁面布局,無需擔心破壞任何嵌入到頁面的PHP代碼。 如果你曾經看過幾個關於PHP模板的教程,那麼你應該已經明白模板的工作機制。考慮一個簡單的頁面局部:頁面的上方是頁頭,左邊是導航條,其餘部分是內容區域。 可以看出頁面如何由這些模板構造而成:main模板控制著整個頁面的布局;header模板和leftnav模板控制著頁面的公共元素。花括弧「{}」裡面的標識符是內容佔位符。使用模板最主要的好處在於界面設計者能夠按照自己的意願編輯這些文件,比如設置字體、修改顏色和圖形,或者完全地改變頁面的布局。界面設計者可以用任何普通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代碼,這是它最大的優點。現在,PHP程序員可以集中精力編寫生成頁面內容的代碼,而不必為了如何生成HTML去正確地格式化最終頁面而擔心。 很容易看出採用模板還有第二個好處。如上例所示,頁面左邊的導航條單獨保存為一個文件,我們只需編輯這一個模板文件就可以改變網站所有頁面左邊的導航條。 避免頁面元素重復 「這確實不錯」,你也許會想,「我的網站主要就是由大量的靜態頁面構成。現在我可以從所有頁面中刪除它們的公共部分,要更新這些公共部分實在太麻煩了。以後我就可以用模板製作出很容易維護的統一頁面布局。」但事情並非這么簡單,「大量的靜態頁面」道出了問題的所在。 請考慮上面的例子。這個例子實際上只有一個example.php頁面,它之所以能夠生成整個網站的所有頁面,是因為它利用了URL中的查詢字元串從資料庫之類的信息源動態地構造出頁面。 我們之中的大多數人所運行的網站並不一定都有資料庫支持。我們的網站大多數由靜態頁面構成,然後用PHP在這里、那裡加上一些動態功能,比如搜索引擎、反饋表單等。那麼,如何在這種網站上應用模板呢? 最簡單的方法是為每一個頁面復制一份PHP文件,然後在每一個頁面中把PHP代碼里代表內容的變數設置成合適的頁面內容。例如,假設有三個頁面,它們分別是主頁(home)、關於(about)和產品(proct),我們可以用三個文件分別生成它們。這三個文件的內容都類如: 希望你能夠喜歡本網站"; $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函數取出緩存中的內容,然後在模板對象中指定這些內容,最後解析模板並輸出完成後的頁面。 這就是整個模板框架全部的工作過程了。

3. PHP模板是什麼

平常我們做一個互動式網站,一定會關注兩個主要的問題,就是美工和程序。這也是一個網站在建設中拋開其內容之後最關鍵的要素。

通常有兩種方式來協調美工和程序之間的關系:

1.先做好美工頁面,然後由程序員直接在美工頁面的Html文件中嵌入ASP、jsp、PHP等程序代碼。

2.美工和程序同時進行,但這時因為沒有頁面框架,程序只能做出一些關鍵代碼,雙方完成後再進行一次美工頁面和程序代碼的嵌入合成。

在實際的網站建設過程中,由於人員、進度等環境的限制,大家通常會混合地使用上面兩種協調方式。然而這兩種方法都有不足之處:

1. 效率不高。兩者協調不好可能產生等待、重復代碼調試步驟等現象;

2. 調試不暢。由於程序代碼最終需要嵌入在HTML頁面中,代碼的嵌入、調試、糾錯都比較繁瑣;

3. 維護不便。一旦美工設計需要修改,如網站改版,那麼所有程序和HTML代碼混合頁面都需要重寫;

如果你正在使用PHP程序建設網站,那麼PHP的模板技術會比較圓滿地解決上述問題。

那麼什麼是PHP的模板技術?PHP模板即PHPlib的Template技術,是PHPLIB程序庫中的一個主要模塊之一,發展自Perl的Template。而PHPLIB則是在PHP上的一個擴展,提供了很多類庫,能夠方便地實現一些基本功能如用戶認證,資料庫封裝等。

現在PHP模板技術很多,不過建議你學習smarty,畢竟是官方的東西!
smarty學習很簡單的,你去下載一個smarty手冊,對照著學,基本上二天就可以學會了!

4. 做個網站(php的),用許多的頁面有相同的部分,如導航條之類的,想做個模板,問下怎麼做,怎麼載入

可以在php中先:
include($tpl->template('moban.html'));

然後再再php中載入個Template.php 就可以了。
Template.php 代碼如下:
<?php

class Template
{
public $templateDir = 'templates';
public $leftTag = '{';
public $rightTag = '}';
public $compileDir = 'cache';
public $compiledFileExt = '.TemplateCompiled.php';
public $templateFileExt = '.html'; //當display() cache() 不使用參數時使用
public $caching = false;
public $cacheDir = 'cache';
public $cacheDirLevels = 0; //緩存目錄層次
public $cacheFileExt = '.TemplateCache.php';
public $cacheLifeTime = 3600; // 單位 秒
public $cacheID;
public $forceCompile = false;
public $lang=array();

private $cacheFile; //緩存文件,在_saveCache()中使用
private $realCacheID; //通過計算得出的緩存ID

const MAX_CACHE_DIR_LEVELS=16; //最大緩存目錄層次數量

public function __construct($arrConfig = array())
{
foreach ($arrConfig as $key=>$val) {
$this->$key = $val;
}

if ($this->cacheDirLevels>self::MAX_CACHE_DIR_LEVELS) {
$this->cacheDirLevels=self::MAX_CACHE_DIR_LEVELS;
}
}

/**
* 判斷緩存文件是否有效
*
* @param string $file
* @param string $cacheID
* @return boolean
*/
public function cached($file='',$cacheID='')
{
$file=$this->getTemplateFile($file);
$this->cacheID=$cacheID;
$cachefile=$this->getCacheFileName($file,$cacheID);
if ($this->caching && is_file($cachefile) && (filemtime($cachefile)+$this->cacheLifeTime)>time()) {
return true;
} else {
return false;
}
}

/**
* 返回模板文件完整路徑
*
* @param string $file
* @return string
*/
private function getTemplateFile($file='')
{
if (!strlen($file)) {
$file=App::$controller.'_'.App::$action.$this->templateFileExt;
}
return $file;
}

/**
* 獲取緩存文件完整路徑
*
* @param string $file
* @param string $cacheID
* @return string
*/
private function getCacheFileName($file,$cacheID)
{
if (!strlen($this->realCacheID)) {
$this->realCacheID=$cacheID!=''?$cacheID:$_SERVER['SCRIPT_NAME'].$_SERVER['QUERY_STRING'];
$this->realCacheID.=$this->templateDir.$file.APP_NAME;
}
$md5id=md5($this->realCacheID);
$this->cacheDirLevel=$this->getCacheDirLevel($md5id);
return $this->cacheDir.$this->cacheDirLevel.'/'.$md5id.$this->cacheFileExt;
}

/**
* 獲取緩存目錄層次
*
*/
private function getCacheDirLevel($md5id)
{
$levels=array();
$levelLen=2;
for ($i=0; $i<$this->cacheDirLevels; $i++) {
$levels[]='TepmlateCache_'.substr($md5id,$i*$levelLen,$levelLen);
}
return !count($levels) ? '' : '/'.implode('/',$levels);
}

/**
* 在$this->compile()中替換$foo.var為數組格式$foo['var']
*
*/
private function compile_replace($str)
{
$str=preg_replace('/(\$[a-z_]\w*)\.([\w]+)/',"\\1['\\2']",$str);
return $this->leftTag.$str.$this->rightTag;
}

/**
* 編譯模板文件
*
* @param string $file
* @return string
*/
private function compile($file='')
{
$file=$this->getTemplateFile($file);
$fullTplPath=$this->templateDir.'/'.$file;
$compiledFile=$this->compileDir.'/'.md5($fullTplPath).$this->compiledFileExt;
if ($this->forceCompile || !is_file($compiledFile) || filemtime($compiledFile)<=filemtime($fullTplPath)) {
$content=file_get_contents($fullTplPath);
$leftTag=preg_quote($this->leftTag);
$rightTag=preg_quote($this->rightTag);
$search=array(
'/'.$leftTag.'include ([\w\.\/-]+)'.$rightTag.'/i', //導入子模板
'/'.$leftTag.'(\$[a-z_]\w*)\.(\w+)'.$rightTag.'/i', //將模板標簽{$foo.var}修改為數組格式{$foo['var']}
'/'.$leftTag.'(.+?\$[a-z_]\w*\.\w+.*?)'.$rightTag.'/ie', //將模板標簽中的$foo.var修改為數組格式$foo['var']
'/'.$leftTag.'(else if|elseif) (.*?)'.$rightTag.'/i',
'/'.$leftTag.'for (.*?)'.$rightTag.'/i',
'/'.$leftTag.'while (.*?)'.$rightTag.'/i',
'/'.$leftTag.'(loop|foreach) (.*?) as (.*?)'.$rightTag.'/i',
'/'.$leftTag.'if (.*?)'.$rightTag.'/i',
'/'.$leftTag.'else'.$rightTag.'/i',
'/'.$leftTag."(eval) (.*?)".$rightTag.'/is',
'/'.$leftTag.'\/(if|for|loop|foreach|while)'.$rightTag.'/i',
'/'.$leftTag.'((( *(\+\+|--) *)*?(([_a-zA-Z][\w]*\(.*?\))|\$((\w+)((\[|\()(\'|")?\$*\w*(\'|")?(\)|\]))*((->)?\$?(\w*)(\((\'|")?(.*?)(\'|")?\)|))){0,})( *\.?[^ \.]*? *)*?){1,})'.$rightTag.'/i',
'/'.$leftTag.'\%([\w]+)'.$rightTag.'/', //多語言
);
$replace=array(
'<?php include($tpl->template("\\1"));?>',
$this->leftTag."\\1['\\2']".$this->rightTag,
"\$this->compile_replace('\\1')",
'<?php }else if (\\2){ ?>',
'<?php for (\\1) { ?>',
'<?php $__i=0; while (\\1) {$__i++; ?>',
'<?php $__i=0; foreach ((array)\\2 as \\3) { $__i++; ?>',
'<?php if (\\1){ ?>',
'<?php }else{ ?>',
'<?php \\2; ?>',
'<?php } ?>',
'<?php echo \\1;?>',
'<?php echo $this->lang["\\1"];?>',
);
$content=preg_replace($search,$replace,$content);
file_put_contents($compiledFile,$content,LOCK_EX);
}
return $compiledFile;
}

/**
* 根據是否使用緩存,輸出緩存文件內容
*
* @param string $tplFile
* @param string $cacheID
*/
public function cache($tplFile,$cacheID='')
{
$this->cacheID=$cacheID;
$cacheFile=$this->getCacheFileName($file,$cacheID);
if ($this->cached($file,$cacheID)) {
readfile($cacheFile);
exit;
} elseif ($this->caching) {
ob_start(array(&$this,'_saveCache'));
$this->cacheFile=$cacheFile;
}
}

/**
* 返回編譯後的模板文件完整路徑
*
* @param string $file
* @return string
*/
public function template($file='')
{
$file=$this->getTemplateFile($file);
return $this->compile($file);
}

/**
* 回調函數,供cache()函數使用
*
* @param string $output
* @return string
*/
public function _saveCache($output)
{
$cacheDir=$this->cacheDir.$this->cacheDirLevel;
is_dir($cacheDir) or mkdir($cacheDir,0777,true);
file_put_contents($this->cacheFile,$output,LOCK_EX);
return $output;
}

}//end class

5. PHP模板怎麼用

php網站模板使用方法如下:
邏輯和現實分離,顯示全部用靜態頁面的html代碼。
把要顯示的變數用一個特定的字元串放進去(一般都是<!--{$str}-->這種形式)。當然,模板文件不一定非要是html後綴,你可以用任何後綴。
邏輯層處理完業務邏輯就要包含模板文件顯示了。
包含的思想就是用fopen打開文件,把文件內容讀到一個字元串變數里。
然後用正則表達式把<!--{$str}-->替換成$str,最後用echo輸出就行了。

6. 如何使用PHP網站模板

汗,你下載的是哪個的呀,一種模板對應一種cms管理系統,我知道的比較出名的有phpcms,dedecms,php168,帝國cms,ecshop等,你看下你的屬於哪種cms就去網路一下那種cms的名字,就可以找到官方網站了
網路搜:免費模板網,可以找到這些模板哦!

7. 怎麼用php模板搭建網站

1:首先看使用的模版是哪種CMS的
2:織夢的(dede)?帝國的?eshop?或者是其他的CMS
3:找到對應的CMS程序 然後下載相應的CMS程序安裝就可以了

8. 從網上下載下來的php網站模板怎麼打開啊

估計是連接資料庫的信息而已,打開直接改成你的虛擬機的信息就好了啊.
還有看看那個文件有什麼配置的信息可以修改然後按自己需要修改就好了.還有,
打開php文件時建議是用其它軟體打開,
比如notepad++
sublime或者一些ide打開,
不要用記事本打開.
有時可能會因為編碼的一些問題而出錯.
個人見解~

9. 網站模板怎麼使用PHP的~詳細一點!

php的模板很好用的,我剛開始學感覺也是很麻煩,後來我就看php模板引擎思想。其實他思想很簡單,就是把邏輯和現實分離,顯示全部用靜態頁面的html代碼,把要顯示的變數用一個特定的字元串放進去(一般都是<!--{$str}-->這種形式),當然,模板文件不一定非要是html後綴,你可以用任何後綴。
你的邏輯層處理完業務邏輯就要包含模板文件顯示了,
包含的思想就是用fopen打開文件,把文件內容讀到一個字元串變數里,然後用正則表達式把<!--{$str}-->替換成$str,然後用echo輸出就行了

10. PHPCMS網頁模板怎麼使用

改對應的模板文件即可。
改完記得生成才會顯示哦。

閱讀全文

與php網站模板使用相關的資料

熱點內容
如何壓縮文件夾聯想電腦 瀏覽:583
程序員的學習之旅 瀏覽:440
apkdb反編譯 瀏覽:922
雪花演算法為什麼要二進制 瀏覽:825
在文檔中打開命令行工具 瀏覽:608
android圖標尺寸規范 瀏覽:369
python實用工具 瀏覽:208
流量計pdf 瀏覽:936
科東加密認證價格 瀏覽:532
dos命令讀文件 瀏覽:996
成為程序員需要什麼學歷 瀏覽:672
pdf農葯 瀏覽:228
canal加密 瀏覽:497
日本安卓系統和中國有什麼區別 瀏覽:137
linux命令行修改文件 瀏覽:838
從編譯和解釋的角度看 瀏覽:649
徐志摩pdf 瀏覽:651
夏天解壓球視頻 瀏覽:304
全封閉壓縮機qd91h 瀏覽:668
如何在我的世界免費開一個伺服器 瀏覽:329