基于PHP的网站设计及项目最终版毕业论文.docx
《基于PHP的网站设计及项目最终版毕业论文.docx》由会员分享,可在线阅读,更多相关《基于PHP的网站设计及项目最终版毕业论文.docx(24页珍藏版)》请在冰豆网上搜索。
![基于PHP的网站设计及项目最终版毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-1/26/87574359-cfde-48c3-9e29-97bb9a8ade3b/87574359-cfde-48c3-9e29-97bb9a8ade3b1.gif)
基于PHP的网站设计及项目最终版毕业论文
安徽三联学院
专科毕业论文
题目:
基于PHP的网站设计及项目
姓名孟飞
专业网络系统管理
班级10级
指导教师汤雷
2012年12月
基于PHP的网站设计及项目
摘要
PHP(“PHP:
HypertextPreprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,尤其适合web开发。
PHP代码将在Web服务器中被解释为HTML代码,返回给客户端。
PHP是用于动态内容和MySQL数据库交互的最优秀语言。
PHP的特点是容易掌握,学习周期短、成本低,PHP语法简单、灵活,丰富的数据库兼容性,强大的功能扩展性,面向对象编程支持(PHP5),运行效率高,网络上支持资源丰富。
PHP代码被包含在特殊的起始符和结束符中,使得可以进出“PHP模式”。
PHP和客户端的JavaScript不同的是,PHP代码是运行在服务端的。
如果在服务器上建立了如上例类似的代码,则在运行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运作的。
甚至可以将web服务器设置成让PHP来处理所有的HTML文件,这么一来,用户就无法得知服务端到底做了什么。
关键词:
服务器端语言;开放源代码;运行效率高
目录
第一节引言……………………………………………………………………1
第二节PHP的前言……………………………………………2
2.1PHP的用途…………………………………………2
2.2wamp环境…………………………………………2
第三节PHP项目中常用函数………………………………3
3.1函数……………………………………………………3
3.2回话控制………………………………………………4
3.3输出函数和引用函数……………………………………7
3.4变量操作函数和数学函数………………………………7
3.5字符串函数………………………………………………8
3.6数组函数…………………………………………………9
3.7日期时间函数和URL函数………………………………12
3.8目录文件函数……………………………………………12
第四节PHP面向对象……………………………………………14
4.1面向对象概念…………………………………14
4.2类的结构成员…………………………………15
4.3类的实例化与函数………………………………15
4.4继承……………………………………………16
4.5成员控制………………………………………16
第五节PHP+MySQL……………………………………………16
5.1PHP中MySQL内置函数……………………………16
5.2PHP+MySQL版本的网站设计…………………………………20
第六节实际博客项目……………………………………………22
6.1分析项目……………………………………………22
6.2后台(部分代码)…………………………………23
6.3前台(部分代码)…………………………………26
6.4实现效果……………………………………………29
结束语……………………………………………31
参考文献………………………………………………………32
致谢……………………………………………………33
第1节引言
近年来,php越来越来流行,由于所有的PHP源代码事实上都可以得到,PHP是免费的。
程序开发快,运行快,技术本身学习快。
嵌入于HTML:
因为PHP可以被嵌入于HTML语言,它相对于其他语言。
编辑简单,实用性强,更适合初学者。
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS下。
PHP消耗相当少的系统资源。
SiteTeam企业自助建站软件是一部专业为搜索引擎营销(网站优化SEO)而设计,操作极简单,网站极稳定、故障自动修复、在线升级维护、建站速度极快、专为大众上网营销而设计的完全免费开源企业建站系统!
用PHP动态创建图像。
php4,php5中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。
专业专注:
PHP支持脚本语言为主,同为类C语言。
PHP的语法与C,Perl,ASP或者JSP相比,对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。
相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都会变得很简单。
你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。
由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。
PHP可以编译成具有与许多数据库相连接的函数。
PHP与MySQL是现在绝佳的组合。
你还可以自己编写外围的函数去间接存取数据库。
通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。
PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
就像前面说的那样,PHP已经进入了一个高速发展的时期。
对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。
PHP提供了类和对象。
基于web的编程工作非常需要面向对象编程能力。
PHP支持构造器、提取类等。
传统上网页的交互作用是通过CGI来实现的。
CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。
解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。
PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。
内嵌的PHP可以具有更高的可伸缩性。
除了以上优点,PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。
你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。
你可以在苍蝇上画图,编写程序下载或者显示e-mail。
你甚至可以完成网络相关的功能。
最好的是,你可以选择你的PHP安装版本需要哪些功能。
引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切,而且无所不能!
第2节PHP的前言
2.1PHP的用途
1.编写服务器脚本(图)
2.编写命令行脚本
3.编写桌面应用程序
图2-1编写web服务器脚本过程
2.2wamp环境
W代表:
Windows平台,a代表:
Apache服务器,m代表:
mysql数据库,p代表:
PHP语言;先安装Apache服务器,在安装PHP,最后安装mysql。
(1)PHP官网下载:
x-函数名([参数列表]){函数体[return返回值]}。
(2)变量的作用域和生命周期:
变量的分类:
局部变量——在函数体内定义的变量,全局变量——函数体外主程序定义的变量。
变量的作用域:
局部变量——在函数体内有效(可见),全局变量——在整个程序脚本中有条件有效(有条件可见)。
变量的生命周期:
局部变量——从声明语句开始到函数结束,全局变量——从声明语句开始到脚本结尾。
global——函数局部中使用全局变量,必须先用该关键字声明,方可使用。
static——静态变量强制性将变量的生命周期延续到下一次调用;静态变量仅在局部函数域中存在。
(3)函数的参数:
语法:
typefunction函数名([参数列表]){函数体[return返回值]}函数的参数列表可以有,也可以没有;多个参数用半角英文逗号(,)分隔;默认参数从右向左。
无参数的函数:
functiondisplayBR(){echo"
";};有参数的函数:
functiondisplayBR($n){for($i=0;$i<$n;$i++){echo"
";}};有多个参数的函数:
functiondisplay($name,$age){echo"姓名为:
".$name."
年龄为:
".$age;}display(“孟飞”,48);两个参数;有默认参数的函数:
functiondisplay($name,$age="22"){echo"姓名为:
".$name."
年龄为:
".$age;}display(“孟飞”);注意:
这里只有一个参数。
默认参数从右向左设置(即:
有默认值的参数,放在参数列表的右侧)。
参数的传址调用:
普通的参数传递为值复制传递调用,若加&地址符,则为参数地址的别名传递调用,采用传址调用,参数值在函数体内改变后,将影响到函数体外的值。
functiontest(&$n){$n="abc";return$n;}$n=123;echo"主程序中的变量n值:
".$n."
";test($n);echo"调用函数后的变量n值:
".$n."
";;
(4)函数的返回值:
语法:
typefunction函数名([参数列表]){函数体[return返回值]}函数的返回值类型type由函数体内的返回语句return控制;返回值的数据类型即函数的返回类型;返回值的内容即函数的返回内容;函数体在return执行后,结束运行。
(5)函数的嵌套和递归:
函数的嵌套——函数中包含函数
functiontest1(){
echo"函数test1已执行
";
functiontest2(){
echo"函数test2已执行
";
}
test2();
}
test1();
函数的递归——函数自己调用自己本身,注意:
防止死循环无限递归。
要一个出口。
functioncal($n){
if($n<=10){
echo$n."
";
cal($n+1);
}
}
$x=cal
(1);
3.2会话控制
PHP的会话控制原理:
通过唯一的会话ID编号来区别不同会话,会话ID是一个经过加密的随机数字,ID可以保存在客户端用户机器中,或是通过URL直接传递,或是存储在服务器端。
会话ID概念:
HTTP协议类似邮政服务——发出即不管,会话ID类似邮箱钥匙,会话ID对应的会话通道,该通道中我们可以注册一些特定的变量信息,称为会话变量。
常见保存会话变量的方法:
COOKIE、SESSION,都是可以暂时保存在多个页面中使用的变量,COOKIE存放在客户端浏览器中,SESSION保存在服务器上。
COOKIE:
cookie'kuki饼干,WEB技术发展史Cookie技术的出现是一个重大的变革,最先是Netscape在它的NetscapeNavigator浏览器中引入Cookie技术,经过微软的大力推广即在微软的InternetExplorer浏览器中完全支持Cookie技术,现在绝大多数浏览器都支持Cookie技术。
原理:
一种能够让网站服务器把少量数据存储到客户端的硬盘或内存中,并能从客户端取回数据的一种技术。
cookie是在http协议下,服务器或脚本可以维护客户端信息的一种方式,cookie是web服务器保存在用户浏览器上的文件,它可以包含有关用户的一些数据信息,当用户访问服务器时,服务器可以访问到cookie的信息;如果浏览器上Cookie太多,超过了系统所允许的范围,浏览器将自动对它进行删除。
COOKIE只是身份标示,不是代码,不能执行,COOKIE只能由提供服务的发起者读取,COOKIE保存的信息片段以"名=>值"对应的方式存储,一个"名=>值"对仅仅是一条记录,COOKIE中的内容大多数是经过加密的。
图3-2COOKIE在客户端的设置
PHP中COOKIE函数:
PHP用setcookie函数来设置cookie
Cookie数据在传输过程中是作为页面请求的一部分进行传输,在浏览器客户端和服务器之间传递信息,PHP中的Cookie是用全局变量数组进行赋值和调用的:
$_COOKIE——超全局数组变量(字符串关联数组)。
设置COOKIE的PHP函数:
setcookie(变量名[,变量值,过期时间(unix秒),有效路径,有效域名]);变量名:
参数是设置cookie的名字。
变量值:
设定了cookie的值。
过期时间:
cookie变量有效期的截至时间(超过则失效),是一个标准的Unix时间标记,可以用time()函数取得,以秒为单。
cookie的有效路径和有效域名。
if(!
isset($_COOKIE["mycookie"])){
echo"没有mycookie参数,开始设置mycookie参数值";
setcookie("mycookie","dayu",time()+1);
}else{
echo"已设置了mycookie的值:
".$_COOKIE['mycookie'];
}
删除COOKIE(两种方法):
setCookie("cookieName");赋空值setCookie("cookieName","value",time());设过期时间。
使用cookie的限制,不同的浏览器版本,浏览器型号对cookie的处理不同,客户端可以禁用cookie,浏览器也会限制cookie的数量,cookie本身不存在危险。
2.会话控制之SESSION:
客户端禁用COOKIE时如何控制会话:
访问网站的来客会被分配一个唯一的标识符,即所谓的会话ID。
它要么存放在客户端的cookie,要么经由URL传递。
SESSION变量只对相同ID的会话有效,限定了用户和服务器的关联;相等的session_id表明是同一个会话。
session_start();开启会话echosession_id();获得当前会话的ID。
SESSION:
PHP中使用超全局变量数组$_SESSION来存储设置信息(字符串关联数组)
SESSION会话中的数据存放在服务器端;SESSION_ID会话ID默认存放在客户端的Cookie中。
PHP中使用SESSION会话的工作流程:
脚本中启动会话session,或根据配置文件php.ini中设置的自动启动会话session,设置取得当前会话ID,即session_id——系统可自动完成,返回注册销毁该会话中的变量值,通过cookie或URLGET参数传递session_id——系统可自动完成,进入下一个脚本执行。
。
。
php.ini中关于session的配置项:
session.save_path:
session信息在服务器端的存储路径,session.auto_start:
自动启用session,默认不自动。
如果设置为1,则不用每次访问时都先session_start()。
修改php.ini配置,不用cookie存储会话ID,而用URL的GET传递:
session.use_cookies:
使用cookie来保存session_id,默认是session.use_only_cookies:
仅使用cookie来保存session_id,默认是session.use_trans_sid:
是否可以通过URL传递会话ID,默认不允许。
SESSION操作时使用的常用函数:
session_start():
指明php脚本需要使用session会话;要使用session必须先调用此函数开启会话,除非php.ini中已设置自动开启session_id([string$sid]):
设置得到session的id值;设置新的session_id意味着启动一个新的session会话,或设置sid开启一个已有的会话。
session_name([string$session_name]):
设置返回session_id的名字默认是PHPSESSID,一般不用更改。
session_unset():
释放session中定义的所有变量的值,session_destroy():
销毁session中所有的已注册变量和会话ID。
注意:
session_destroy是清除SESSOIN_ID,并不清除session中的数据;但既然SESSION_ID被清除了,该会话全局作用域内的数据也就失效了;但当前脚本中SESSION的数据还是有效的。
session数据有效期是系统根据php.ini中的“垃圾回收”设置的数据有效时间和回收比例共同作用后自动清除的。
session数据默认的有效期为:
浏览器关闭后session失效(推荐在火狐中测试)浏览器不关闭,但没有任何操作(无数据刷新等交互动作),一段时间后session失效推荐自定义设置session的失效时间原理:
利用Cookie中session_id会话编号的保存时间,即可设置session变量的保存时间;setcookie(session_name(),session_id(),time()+30);。
3.3输出函数和引用函数
输出函数:
echo输出字符串(仅能输出标量),无返回值echo("str");或echo"str";print_r常用于打印数组或对象,将会按照一定格式显示键和元素。
print_r("str");或print_r($array);var_dump打印变量的相关信息,包括表达式的类型与值var_dump($array);。
引用函数:
require和include——包含引用函数,将外部独立PHP文件中的代码包含引用到当前脚本中来,require:
当引用的文件不存在时,脚本严重报错,并终止执行,include:
当引用的文件不存在时,脚本提示错误,继续执行。
require("be_require.php");和include("be_include.php");。
require_once和include_once——只包含一次的引用函数:
分别与require和include函数相似但分别只会包含目标文件一次,若已包含则不再重复包含,建议使用require_once和include_once来替代require和include函数;实际开发中优先选用require_once引用。
3.4变量操作函数和数学函数
变量操作函数:
empty检查一个变量的值是否为空,返回布尔值,if(empty($test))。
isset检测变量是否设置(是否已声明),返回布尔值,if(isset($test))。
unset释放(删除)一个或多个变量,unset($v1,$v2);。
数学函数:
abs返回变量的绝对值,ceil返回大于变量的最小整数,floor返回小于变量的最大整数,round返回对浮点参数的四舍五入值,max返回参数中最大的值,min返回参数中最小的值,rand返回随机数(可指定随机数范围),sqrt返回参数的平方根,pow返回参数的幂。
3.5字符串函数
与字符串长度有关的函数,计算字符串长度,语法:
intstrlen(字符串),返回值:
字符串长度的数值。
$str="($str);11$str="北京欢迎您";echostrlen($str);utf8下一个汉字的长度为3;GB2312下一个汉字的长度为2。
清除字符串头尾空白字符,语法:
trim(字符串),返回值:
清除头尾空白字符后的字符串,$str=“北京欢迎您”;前有空格echotrim($str);
$str=“北京欢迎您”;前后各有空格echotrim($str);。
转换字符串英文字符大小写的函数:
将字符串全部转化为大写语法:
strtoupper(字符串)返回值:
全部大写的字符串;将字符串全部转化为小写,语法:
stringstrtolower(字符串),返回值:
全部小写的字符串。
与字符串位置有关的函数:
返回字符串中指定位置的字符——不用函数,$str="=php_mbstring.dll扩展。
替换指定截取位置字符串函数,放回被替换后的源字符串,语法:
substr_replace(源字符串,替换部分的新字符串,起始位置[,截取长度]),返回值:
截取替换后的新字符串,该函数的后两位参数同substr函数一样,可取负数。
与HTML有关的字符串函数:
换行字符转化为回车标签,语法:
nl2br(字符串),返回值:
字符串,常用于格式化textarea的纯文本内容。
将字符串中的HTML标签剔除掉,语法:
strip_tags(字符串[,允许保留不被删除的标签]),返回值:
字符串。
将字符串中的HTML标签剔除掉——strip_tags。
字符串中的HTML标签特殊字符的转义,语法:
string_array(搜索的元素值,数组[,是否要求类型相同]),返回值:
布尔值;找到则返回true,否则返回false,是否要求类型相同默认为false。
2.搜索关联索引数组的键是否存在,语法:
array_key_exists(搜索的键名,数组),返回值:
布尔值;找到则返回true,否则返回false。
3.搜素关联数组中的元素值,语法:
array_search(搜索的元素值,数组[,是否要求类型相同]),返回值:
找到则返回相应的键值;没找到则返回false。
遍历数组:
数组元素遍历的方法——foreach,foreach(arrayas$value){代码},foreach(arrayas$key=>$value){代码}。
确定数组大小和元素唯一性:
确定数组的大小——count,用count和for循环配合实现数组遍历,常用于数字索引数组。
for循环此方法局限性:
只适用于数字索引有规则的数组;字符串索引或数字索引无规则的数组遍历只能用foreach。
剔除重复的元素,并保持索引,语法:
array_unique(数组),返回值:
没有重复元素的数组。
数组排序:
数组反向,语法:
array_reverse(数组[,是否保存索引(默认false)]),返回值:
反序后的数组。
数组排序,按值升序排序——对数组元素按值从低到高的升序排列,语法:
sort(&数组[,排序设置]),返回值:
无,参数为&传址,所以无返回值;排序后将直接影响原数组,排序设置:
实际开发中系统自动识别,SORT_NUMERIC:
按数值排序(适用于数字),SORT_REGULAR:
按ASCII码值排序(适用于英文字符),SORT_STRING:
按字符大小排序(适用于英文字符串)。
其他数组操作函数:
将数组元素顺序重新打乱(洗牌),语法:
shuffle(&数组),返回值:
无,索引将重置。
数组值求和,语法:
array_sum(数组),返回值:
整数值。
从字符串索引数组中将键值对的元素提取成一些变量,用字符串索引作为变量名,元素值作为变量值;一个键值对提取为一个变量;语法:
extract(字符串索引数组),var_array——操作的源数组(必须是字符串索引数组),返回值:
提取的元素数量,整数值。
把非字符串索引数组中的元素值提取为一些单个变量,语法:
list(变量[,变量,......])=数组,不是函数,仅仅是PHP的一种语句(语法结构)。
从数组中随机提取并返回N个元素的索引,语法:
array_rand(数组,提取个数),返回值:
提取的索引组成的数组。
超全局变量$_GET和$_POST数组:
表单的method分为两种:
post和get,action的地址完全