用PHP制作静态网站的模板框架(四)
程序员文章站
2022-08-11 15:18:51
静态网站的模板框架 首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件;然后从所有的页面删除公共部分,只留下页面内容;接下来再在每个页面中加上三行p...
静态网站的模板框架
首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件;然后从所有的页面删除公共部分,只留下页面内容;接下来再在每个页面中加上三行php代码,如下所示:
<?php
<!-- home.php -->
<?php require('prepend.php'); ?>
<?php pagestart('home'); ?>
<h1>你好</h1>
<p>欢迎访问</p>
<img src="demo.jpg">
<p>希望你能够喜欢本网站</p>
<?php pagefinish(); ?>
?>
这种方法基本上解决了前面提到的各种问题。现在文件里只有三行php代码,而且没有任何一行代码直接涉及到模板,因此要改动这些代码的可能性极小。此外,由于html内容位于php标记之外,所以也不存在特殊字符的处理问题。我们可以很容易地将这三行php代码加入到所有静态html页面中。
require函数引入了一个php文件,这个文件包含了所有必需的与模板相关的php代码。其中pagestart函数设置模板对象以及页面标题,pagefinish函数解析模板然后生成结果发送给浏览器。
这是如何实现的呢?为什么在调用pagefinish函数之前文件中的html不会发送给浏览器?答案就在于php 4的一个新功能,这个功能允许把输出到浏览器的内容截获到缓冲区之中。让我们来看看prepend.php的具体代码:
<?php
require('class.fasttemplate.php');
function pagestart($title = '') {
global $tpl;
$tpl = new fasttemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav'=> 'leftnav.htm' ) );
$tpl->assign('title', $title);
ob_start();
}
function pagefinish() {
global $tpl;
$content = ob_get_contents();
ob_end_clean();
$tpl->assign('content', $content);
$tpl->parse('header', 'header');
$tpl->parse('leftnav', 'leftnav');
$tpl->parse('main', 'main');
$tpl->fastprint('main');
}
?>
首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件;然后从所有的页面删除公共部分,只留下页面内容;接下来再在每个页面中加上三行php代码,如下所示:
<?php
<!-- home.php -->
<?php require('prepend.php'); ?>
<?php pagestart('home'); ?>
<h1>你好</h1>
<p>欢迎访问</p>
<img src="demo.jpg">
<p>希望你能够喜欢本网站</p>
<?php pagefinish(); ?>
?>
这种方法基本上解决了前面提到的各种问题。现在文件里只有三行php代码,而且没有任何一行代码直接涉及到模板,因此要改动这些代码的可能性极小。此外,由于html内容位于php标记之外,所以也不存在特殊字符的处理问题。我们可以很容易地将这三行php代码加入到所有静态html页面中。
require函数引入了一个php文件,这个文件包含了所有必需的与模板相关的php代码。其中pagestart函数设置模板对象以及页面标题,pagefinish函数解析模板然后生成结果发送给浏览器。
这是如何实现的呢?为什么在调用pagefinish函数之前文件中的html不会发送给浏览器?答案就在于php 4的一个新功能,这个功能允许把输出到浏览器的内容截获到缓冲区之中。让我们来看看prepend.php的具体代码:
<?php
require('class.fasttemplate.php');
function pagestart($title = '') {
global $tpl;
$tpl = new fasttemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav'=> 'leftnav.htm' ) );
$tpl->assign('title', $title);
ob_start();
}
function pagefinish() {
global $tpl;
$content = ob_get_contents();
ob_end_clean();
$tpl->assign('content', $content);
$tpl->parse('header', 'header');
$tpl->parse('leftnav', 'leftnav');
$tpl->parse('main', 'main');
$tpl->fastprint('main');
}
?>
上一篇: 超级简单的发送邮件程序
下一篇: 透析PHP的配置文件php.ini
推荐阅读
-
用PHP制作静态网站的模板框架(一)
-
用PHP制作静态网站的模板框架(三)
-
用PHP制作静态网站的模板框架(二)
-
用PHP制作静态网站的模板框架(四)
-
教程:用网页建站模板制作简单的美食类网站
-
用PHP制作静态网站的模板框架四_PHP教程
-
用PHP制作静态网站的模板框架(三)_php基础
-
用PHP制作静态网站的模板框架(四)_php基础
-
熟练掌握CSS+DIV,能在记事本下熟练写静态页,做过10多个静态网站项目,只懂一点PHP语法和MySQL语法,剩下的全都不懂,只自学了半个月,用什么软件,和什么框架能让我立刻参加工作,能让我这个水平也能写出PHP程序?
-
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面_PHP