2012-12-30 59 views
0

我對PHP很新,但對於它的工作原理我有一個公平的想法。 我的問題是這樣的:是否有可能在HTML中有%username%這樣的東西,當PHP識別這個文本時,它會輸出一個用戶名? 即:將%用戶名%變成實際的用戶名?HTML文本觸發器PHP

這將如何完成,或者它是如何工作的?

感謝您提前提供所有幫助!

+0

你的意思是相當於ASP.NET控件的東西? –

+1

谷歌爲「php模板引擎」。那裏有多個選項。 – Ryan

回答

5

這通常通過模板引擎例如Smarty完成。從smarty.net

What's a template engine and why should I use one?

Smarty的是PHP模板引擎,請參閱下的定義。更具體地說,它有助於 以可管理的方式將應用程序邏輯和內容從其演示文稿中分離出來。最好在應用程序員和模板設計人員扮演不同角色 或大多數情況下不是同一個人的情況下描述。例如,假設您 正在創建顯示報紙文章的網頁。 文章標題,標語,作者和正文是內容元素,它們不包含有關如何呈現它們的信息 。他們 傳遞到Smarty的應用程序,然後在模板設計 編輯模板,並使用html標籤和模板 標籤的組合來格式化這些元素(HTML表格, 背景顏色,字體大小,樣式表的呈現,等等)有一天 程序員需要改變檢索文章內容的方式( 更改應用程序邏輯)。此更改不會影響設計人員的模板 ,但內容仍然會到達模板中,並且完全相同 。同樣,如果模板設計人員想要完全重新設計模板,則不需要更改應用程序邏輯。 因此,程序員可以對應用程序邏輯 進行更改,而不需要重新構建模板,並且模板設計器 可以在不中斷應用程序邏輯的情況下更改模板。

除smarty外還有很多其他的模板引擎,只是google而已。

+0

比你的幫助!這聽起來像我正在尋找的,但是,使用像Smarty這樣的東西減慢你的網頁? – zuc0001

2

是的,是這樣的:

<? 
$username = "However you get your username"; 
// other serverside logic 
?> 

<HTML> 
    <BODY> 
     <? echo $username; ?> 
    <BODY> 
</HTML> 

它不會得到任何短。

這只是一個回聲陳述,我不認爲我需要解釋這一點。

+1

'我有 foo.' – Philipp

+0

對不起。我的意思是說,根本不使用PHP標籤。你有簡單的HTML - %username% - 不涉及PHP,但是當被包含到PHP頁面中時,該文本將被更改爲用戶名。我已經看到完成,但不知道如何做到這一點。 – zuc0001

+0

@Philipp這就是ASP。 – 11684

0

還有更多選項可以實現此目的 - 您可以使用php.ini選項short_open_tag來使用<?=$varname ?>語法。您也可以使用php.ini選項asp_tags將var輸出使用<%=$var %>

但我認爲最好的選擇是使用像Smarty這樣的模板引擎。使用模板引擎,您可以嚴格分離設計和代碼邏輯。