PHP新手上路(五)


Posted in PHP onOctober 09, 2006

建设一个简单交互的网站(一)

PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。

5.1 计划一个站点

一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。  

5.2 用include和require进行模块化

我们看一些用PHP构架的网站,几乎网站每一个页面的PHP文件里都会有include和require嵌入其间。这是因为使用include和require不但可增强代码的可读性,而且可将站点分成模块来管理。一般来说,对于一个网站上的每个页面肯定会有重复的内容。例如:页面头部的导航条、广告图标、或边部导航等。可能还在每页的页脚即页面的底部有著作权或一些基于文本的导航条。如果我们要修改一个包含成千上百个页面的大网站上的导航条或是徽标之类的内容,用我们以往的方法,我们只能遂一对每一页面进行更改。不用我说,大家也能想像到这是一件多么艰巨而痛苦的差事。那么,我们到底有没有更好的解决方法呢?答案是肯定的。我们可以将重复的内容都放到一个文件中,然后在每一个需要这些内容的页面上用PHP的include和require函数动态地调用该文件。这样,以后如果我们想对所有页面上的这些复用内容做修改时,就只需要更改包含了这些重复内容的文件。

为了便于大家理解,让我们先来看看include和require的一个简单应用:

HTML的页面开始,也许你会在站点的每页的头部包含它(head.htm)。
<HTML>
<HEAD>
<TITLE> 我的个人主页 </TITLE>
</HEAD>
<BODY>  

页面内容(content.htm)。  
<H1>
欢迎来我的寒舍,虽然这里现在暂时还没有什么。  
</H1>  

HTML的页面的结束(trail.htm)
</BODY>
</HTML>

用include和require函数把HTML从PHP中分离出来,将HTML和PHP分成模块:  
<?
/*
调用HTML页面的头部
*/
require("head.htm");
/*
调用HTML页面的内容
*/
require("centent.htm");
/*
调用HTML页面的尾部
*/
require("trail.htm");
?>

5.3 让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的、通用的页面头部和底部。  

标题页面--front.htm  
这里我们有一个非常简单的html文件:
<HTML>
<HEAD>
<TITLE>
我的个人主页--欢迎
</TITLE>
</HEAD>
<BODY>
<H1>
我的个人主页
</H1>
<H2>
欢迎
</H2>
<HR>
<P>
欢迎来我的寒舍,虽然这里现在暂时还没有什么。
</P>
<P>
不过我希望马上就可以多起来。
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>

联系信息页面--count.htm
同样我们又有了一个简单页面:
<HTML>
<HEAD>
<TITLE>
我的个人主页--联系信息
</TITLE>
</HEAD>
<BODY>
<H1>
我的个人主页
</H1>
<H2>
联系信息
</H2>
<HR>
<P>
你可以通过1-800-PHP-INFO联系我
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>

5.4 从HTML到PHP

从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。在include和require函数中都包含一个PHP代码的文件,不管该文件的扩展名是什么,它都被当作是PHP文件。我们将把这些include文件放在一个叫include的子目录下,并取成以.inc为后缀的文件。下面我们就把这些站点的通用内容写进文件中。

全站通用变量设定:common.inc
<?
// 全站通用变量
$MyEmail = "phptalk@tnc.org";
$MyEmailLink = "<a href="mailto:$MyEmail">$MyEmail</a>";
$MyName = "PHP Talk";
$MySiteName = $MyName."'s Home Page";
?>

通用页面头部:header.inc
<?
// 定义通用页面头部
?>
<HTML>
<HEAD>
<TITLE>
<? echo "$MySiteName - $title"; ?>
</TITLE>
</HEAD>
<BODY>
<H1>
<? echo "$MySiteName"; ?>
</H1>
<H2>
<? echo "$title"; ?>
</H2>
<HR>

通用页面底部:footer.inc
<?
// 通用页面底部
?>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? by  
<? echo "$MyName ($MyEmailLink)"; ?>
, 1999
</I> </SMALL>
</P>
</BODY>
</HTML>

新的页面front.php3:
<?
include("include/common.inc");
$title = "Welcome";
include("include/header.inc");
?>
<P>
欢迎来我的寒舍,虽然这里现在暂时还没有什么。
</P>
<P>
不过我希望马上就可以多起来。
</P>
<?
include("include/footer.inc");
?>

新的count.php3:
<?
include("include/common.inc");
$title = "Contact Information";
include("include/header.inc");
?>
<P>
你可以通过1-800-PHP-INFO联系我
</P>
<?
include("include/footer.inc");
?>

现在你可以体会一下这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。  

PHP 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
php文件上传后端处理小技巧
May 22 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
Yii CGridView用法实例详解
Jul 12 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP新手上路(六)
Oct 09 #PHP
PHP新手上路(七)
Oct 09 #PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 #PHP
简单的页面缓冲技术
Oct 09 #PHP
php 之 没有mysql支持时的替代方案
Oct 09 #PHP
在PWS上安装PHP4.0正式版
Oct 09 #PHP
在IIS上安装PHP4.0正式版
Oct 09 #PHP
You might like
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python实现移动木板小游戏
2020/10/09 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
新郎答谢词
2015/01/04 职场文书
工程部经理岗位职责
2015/02/02 职场文书
奖学金个人总结
2015/03/04 职场文书