跳到内容

PHP 编程/模板

来自维基教科书,开放的书籍,为开放的世界
(从 PHP 编程/模板 重定向)

基本模板

[编辑 | 编辑源代码]

在 PHP 中使用模板最简单的方法对于减少错误和节省页面时间非常有效。首先,确保您的服务器启用了 PHP 等。等等,等等。

准备好后,创建一个将作为所有页面模板的页面。例如

This is a title at the top of my page

This is the body of my page

This is a copyright notice

现在,假设您想要另外两个页面,它们具有相同的页眉和页脚。您不必再次编写代码。您可以将页眉保存为一个模板,并将页脚保存为另一个模板。只需获取从页眉 html 到正文文本开始的部分的所有内容

<html><body><p>This is a title at the top of my page</p>

现在将此保存为单独的文件。我喜欢使用扩展名 .inc(页脚也一样)

<p>This is the bottom of my page</p></body></html>

现在,在您的主页面中,只需键入

 <?php require('header.inc'); ?>
 <p>this is the body of my page</p>
 <?php require('footer.inc'); ?>

这就是您的页面。将其保存为 .php,上传并检查。

您还可以使用 include()include_once() 函数,如果页面应该继续加载,即使文件无法包含。

require()include()include_once() 函数将与其他文件类型一起工作,并且可以在页面的任何位置使用。

高级:尝试将此与 if 语句一起使用以进行动态模板化......哦......

管理模板

[编辑 | 编辑源代码]

管理模板允许您使用模板引擎创建和使用 PHP 模板。PHP 开发人员/设计人员不必创建引擎以供使用。最可靠的 PHP 模板引擎是 Smarty( [1] )。管理模板系统易于使用,并且主要用于大型网站,因为需要动态分页。MediaWiki 是管理模板系统的示例之一。管理模板对于新用户和高级用户都易于使用,例如

  • index.php
 // This script is based on Smarty
 require_once("libs/Smarty.inc.php");
 // Compiled File Directory
 $smarty->compile_dir = "compiled";
 // Template Directory
 $smarty->template_dir = "templates";
 // Assign a Variable
 $smarty->assign("variable","value");
 // Display The Parsed Template
 $smarty->display("template.tpl");
  • template.tpl
The Value of Variable is : {$variable}
  • 输出
The Value of Variable is : value

自己动手

[编辑 | 编辑源代码]

模板引擎工作得很好,但是如果您只是在寻找基本的搜索和替换模板功能,那么编写自己的脚本非常容易。

  • 简单模板函数
function Template($file, $array) {
	if (file_exists($file)) {
		$output = file_get_contents($file);
		foreach ($array as $key => $val) {
			$replace = '{'.$key.'}';
			$output = str_replace($replace, $val, $output);
		}
		return $output;
	}
}
  • 使用函数
$fruit = 'Watermelon';
$color = 'Gray';

//parse and return template
$Template_Tpl = Template('template.tpl',
	array
	(
		'fruit'	=> $fruit,
		'color'	=> $color
	));

//display template
echo $Template_Tpl;
  • template.tpl,用于上述函数的模板
<p>
  <b>Your Favorite Food Is: {fruit}</b>
  <b>Your Favorite Color Is: {color}</b>
</p>
  • 解析的模板输出
<p>
  <b>Your Favorite Food Is: Watermelon</b>
  <b>Your Favorite Color Is: Gray</b>
</p>


华夏公益教科书