跳至内容

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>


华夏公益教科书