像PHP模板一样的HTML模板

时间:2012-08-30 10:16:52

标签: php html templates

我知道之前已经多次询问和回答过这些问题,难道只是因为我无法轻易掌握这个想法,或者太难以接受事情真的像这样和那样。

我知道HTML用于前端,在客户端完成繁琐的工作,而PHP正在幕后工作(服务器端)。有这么多的规定,指导,标准等等......我相信我已经把自己弄糊涂了这些东西,让我(新旧)难以咀嚼和理解,特别是当它涉及到它们的最佳用途时。 ..

无论如何,我已经创建了一个基于MVC概念的Web应用程序,因为我没有使用该主题的强大基础知识,也没有使用框架,我将逻辑,规则和设计问题分开了。

不幸的是,我结束了一些类似的事情,这是正确的做事方式,应该如何实施等等......

我最终需要对HTML进行模板化,但是,因为我已经将HTML用作HTML本身,所以我最终更新/编辑每个受影响的文件(例如网页标题),与我使用时不同PHP之前,字面上是一个扩展名为.php的文件,我可以充分利用模板,但是,我在某处读到这不是一个好习惯,因为它打破了HTML ..所以我应该遵循哪一个以及如何解决我的问题问题,我应该转移到.php然后创建一个模板页面,还是有办法用HTML做到这一点?如果有,怎么办?

请与此同时,不要指向可用的框架,我想在学习框架之前先了解基本的东西......

任何人,请...

编辑... 所以这很好,它没有任何缺点...... main.php

 <?php php stuffs ?>
 <html>
 <body>
  HTML stuffs and some <?php php stuffs ?>
 </body>
 </html>

5 个答案:

答案 0 :(得分:4)

HTML没有模板功能。

它有框架和iframe,但它们有明显的缺点,只提供包含功能。

您应该使用正确的模板语言。这可以在客户端,服务器或构建系统上运行。

我建议不要在客户端上运行它。它增加了访问者(包括搜索引擎索引器)必须满足的不必要的依赖性。

PHP将完成这项工作(它跨越了编程语言和模板语言的边界)。我个人的偏好是Template-Toolkit

TT可以通过ttree utility在您的构建系统中运行,也可以在您的服务器上运行。 a tutorial涵盖了如何使用它构建网站。

如果您何时以及何时开始构建具有更高要求的服务器端要求的网站,那么您可以继续使用TT,因为它受支持,但Perl中的大多数Web框架(例如dancer module for TTcatalyst module for TT。请注意,这些链接会转到模块的硬编码文档,如果您打算使用其中一个框架,则应该从更高级别的教程开始)

答案 1 :(得分:0)

HTML是一种标记语言 - 换句话说,它可以标记要显示给用户的文本。

它不能执行Web应用程序中可能需要的任何动态类型函数 - 例如更新日期。

因此,最好考虑HTML文档,就像您可能会想到Word文档一样,向用户显示一大堆文本。

只要您想开始使用模板来显示动态信息(可能是数据库中的内容),您就需要一种脚本语言。 PHP很适合这个。

我对Smarty - 一个php模板引擎有很好的体验。


另一方面,学习框架可以成为学习基础知识的一个非常有用的部分。大多数框架强制你以一种好的方式做事,有时他们让你在你的代码中写的东西可能看起来有点奇怪或不合逻辑,突然有一天,便士会掉落而你会意识到从工程的角度来看,为什么你被迫做的事情是合理的。

答案 2 :(得分:0)

你可以看看@javascript模板。我建议你试试http://mustache.github.com/

答案 3 :(得分:0)

Modest是一个模板系统,应该看起来像HTML一样。

答案 4 :(得分:0)

使用PHP进行HTML模板化的最常用方法是使用这些流行的模板引擎之一:

或者,您可以在HTML中添加类似<% variablename %>的占位符。只需加载你的HTML,做一个正则表达式找到所有占位符并用相应的变量替换它们。

或者,您可以加载HTML,将其解析为DOM document,然后修改您的DOM。我创建了库DOM Query,以便能够使用类似jQuery的语法执行此操作,但您也可以使用vanilla PHP或其他几个库中的一个。

或者,您可以使用JavaScript在前端进行一些HTML模板化。如果您想在前端和后端进行HTML模板化,您可能需要考虑使用 Mustache ,因为Mustache模板可以在前端(使用JavaScript)和后端(使用后端)中使用PHP)。