2012-12-30 26 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这样的模板引擎。使用模板引擎,您可以严格分离设计和代码逻辑。