说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

建设一个简单的交互网站(一) -PHP初学入门教程5

HTML文档下载 WORD文档下载 PDF文档下载
PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。

 

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文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。

 

 

《近匠》酷传:解除App发布和监控痛苦 有道heX正式开源:用HTML5和NodeJS开发桌面应用 在3D空间创作:英大学生发明增强现实设计产品 2014年3月浏览器份额:Chrome终超Firefox 成市场第二大浏览器 2014年3月操作系统份额:Windows 7大涨,Windows XP仍未跌破27%大关 路透社:iPhone 6仅有4.7寸版本,将于5月量产,5.5寸遭冷冻 高端实战技术培训:OpenStack企业应用之路 据统计,Oracle已击败IBM跃居软件行业第二 【技术博客推荐】2014年值得关注的10个开源项目 Intel在深圳建立智能设备创新中心 将投入1亿美元 免费获得价值1200元Unity2014顶级盛会门票! IBM公布Softlayer中国业务落地时间表 推荐30款最佳的数据可视化工具 数据库迁移测试:选白盒还是黑盒? 东软发布首款英特尔架构企业级移动终端解决方案 英特尔与腾讯创立游戏创新实验室 推进RealSense技术 《近匠》系列沙龙之探寻绝密武器:移动跨平台开发 iOS走向开放:苹果新推iAd Workbench广告服务 腾讯薛伟:快速模型更新在精准广告推荐中的应用 微软Build2014第一天要点精华汇总(组图) Windows 8.1 Update 1五大改变:任务栏回归,增强鼠标支持(图) 【十大院士】怀进鹏:全球的计算模式可能重新形成 微软Build2014第一天应了解的15件事 TypeScript1.0发布,完美支持Visual Studio系列产品 欲与Android展开价格战,微软宣布在移动设备上免费开放Windows 2014深圳英特尔信息技术峰会次日要点汇总 4月4日:微软39周岁,生日快乐! 正式进军硬件市场 Atlassian发布可穿戴设备Bitband 云计算时代IT专业人员需具备的10项技能 【走近院士】李德毅:大数据是连接虚拟和现实世界的桥梁 微软Build2014大会第二天干货总结 Microsoft Azure拥抱Puppet、Chef、MongoDB... 打印vb窗体 有什么办法(产品)实现局域网内 IP 同 MAC 绑定,未经绑定关系建立的机器无法实现通信? 谁能给个关于递归的例子? 个人版的SQL SERVER 2000能提供多少连接阿? 网络GIS开发者联盟诚邀软件界精英,共创伟业 dlink网卡不能FTP? 快过年了,打算给父母还有爷爷奶奶买点东西,大家有什么好的建议? asp.net项目启动运行出错,详细信息如下: 怎样判断数据读取完毕? 求ERP的电子书、资料 如何才能做到c/s结构应用程序(pb开发的mis)访问数据库不安装oracle客户端??谢谢 高分请教做服务器,win2000server ???win2000系统,Epson 1600系列打印机,如何找到"自定义纸张"..谢谢 控件区别? 通过一组checkbox来控制按钮是否为disabled 如何通过SQL语句获取我的ORACLE版本号。 在线等,谢谢了…… 应该开个图书交流的版,大家就不必去买那么贵的新书了 ADOTable与ADOquery同步更新问题?? 给你看一张照片,这两人是谁 市面上的delphi的好书怎么这么少呀?哪位ggjj推荐一本好的delphi书籍!! 关于组件和控件的问题。 兄弟们,分数线出来啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! rows菜单update properties下 identity column 列表框作何解? 一个过滤问题 我的系统分析员成绩出来了,气死我了。39,39,55 感觉她作我的GF不错(附照片) 关于excel控件的使用中的第一步 请问哪位有显示CAD文件的组件 用SQL SERVER 2000把数据结构同数据导出到Oracle8i 时 只能够导出结构,why? 忍痛转让 小木可来接分! 各位,在pb里能够用java的类和函数么? 为什么FrameworkSDK里的例子都不能运行? 建议增加《无线应用》板块,包括SMS 函数定义为static有什么作用? 关于postgre,help~~~~~ 怎么在vb的datareport中,显示图片呀!很急,帮忙 谢谢! 邮件问题!控件的用法! 有谁用VC做过面向对象数据库ObjectStore的开发,想交流一下 为什么装了ADSL后经常性死机呢!谢谢 如何打印vb窗体 请大家帮忙看看我的CPU到底是什么烂货!!!谢谢了! 菜鸟急问:如何导入导出DB2整个数据库的结构及数据??立刻结分!! 今天终于考完了最难的一门“机电系统设计” 高兴 && 散粉 应该开个图书交流的版,大家就不必去买那么贵的新书了 关于WebApplication的简单问题!! 有关Delphi中的面向对象程序设计方法 新美国主机到位,经安全运行3周无任何问题,开始销售。 50分买一个C++ Builder 6.0的注册号!!! HELP 温州女大学生月经期飙歌致声带充血猴子喂避孕药 繁殖迅猛甚至已有第五代薄熙来案周四公审 贪污受贿罪状累累(杭州8岁孩子光腚大闹科技馆 称穿衣服河南7警景区裸泳 公安官博作出回应(图文:台州村民种出罕见140斤冬瓜王海宁4名青年戴着耳机没听见呼喊被潮水韩国变性艺人河莉秀杭州遭车祸 随后带临安高中生冒充警察查车 有证表扬没证女儿以患有精神病为由诉母亲贷款合同无杭州男子因玻璃门太干净撞破头 状告商律师买奥巴马图书发现和奥巴马无关 怒三位小伙抢劫忙排练 路遇民警当场露怯杭州水果店招牌掉落 砸断女店员锁骨(舞厅服务生爱上坐台小姐 爱叫人生死相杭州地下车库因大雨进水 仓库蔬菜漂了浦江14岁少年拿着玩具枪抢劫被抓浙江大学4名同年同月同日生男生分同一霸王合同系违法 高桥三家商家受罚户口和亲情的抉择令黑户家庭左右为难浦江男子冒充警察强奸少女 还抢走其3新疆博湖县社区热心居民捐衣物献爱心托里县举行主题成人礼曁民族团结手拉手玛纳斯县真心实意倾听民声 求真务实低新疆托里县四举措加强教育注重“育人”玛纳斯县北五岔镇村级计生药具管理工作和布克赛尔县查和特乡抗灾自救工作全面新疆精河县多举并措促就业托里县纪检委实行党的群众路线教育实践新疆呼图壁县二十里店镇践行焦裕禄精神伊宁市五一小长假旅游收入增长12.1云南干旱致7州市119.97万人受灾舞韵流转中的痴情和守望云南彝良35家煤矿全部停产整顿昆明交警微信平台开通 指尖上对话群众甘肃岷县地震灾区千名干部“上山下乡”多地欲为楼市限购“松绑” 专家称仅靠中国广西向越南移交一名毒贩中国驻哈大使:“亚信”未来或成全亚洲第二届北京 上海市民划船器挑战赛6月山西五台山举行千僧斋法会庆祝佛主圣诞扬州政府转职能放弃“奶酪” 创机会让
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘