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 相关文章推荐
用PHP连mysql和oracle数据库性能比较
Oct 09 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
php自定义hash函数实例
May 05 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
php实现图片以base64显示的方法
Oct 13 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
十天学会php之第十天
2006/10/09 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
php中如何执行linux命令详解
2018/11/06 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
js实现文字滚动效果
2016/03/03 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python分布式环境下的限流器的示例
2017/10/26 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
体育教育毕业生自荐信
2013/11/21 职场文书
学生爱国演讲稿
2014/01/14 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
2015年副班长工作总结
2015/05/15 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android