《基于PHP的网站设计及项目(最终版)毕业论文.docx》由会员分享,可在线阅读,更多相关《基于PHP的网站设计及项目(最终版)毕业论文.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于PHP的网站设计及项目(最终版)毕业论文 安徽三联学院 专科毕业论文题目:基于PHP的网站设计及项目 姓名孟飞 专业网络系统管理 班级10级 指导教师汤雷 2022年12 月 基于PHP的网站设计及项目 摘要 PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种 被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。PHP代码将在Web服务器中被解释为HTML代码,返回给客户端。PHP是用于动 态内容和MySQL数据库交互的最优秀语言。PHP的特点是容易掌握,学习周期短、成 本低,PHP语法简单、灵活,丰富的
2、数据库兼容性,强大的功能扩展性,面向对象编 程支持(PHP5),运行效率高,网络上支持资源丰富。PHP 代码被包含在特殊的起始 符和结束符中,使得可以进出“PHP 模式”。PHP和客户端的 JavaScript 不同的 是,PHP 代码是运行在服务端的。如果在服务器上建立了如上例类似的代码,则在 运行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运 作的。甚至可以将 web 服务器设置成让 PHP 来处理所有的 HTML 文件,这么一 来,用户就无法得知服务端到底做了什么。 关键词:服务器端语言;开放源代码;运行效率高 目录 第一节引言 (1) 第二节P H P的前言 (2
3、) 2.1P H P的用途 (2) 2.2w a m p环境 (2) 第三节P H P项目中常用函数 (3) 3.1函数 (3) 3.2回话控制 (4) 3.3输出函数和引用函数 (7) 3.4变量操作函数和数学函数 (7) 3.5字符串函数 (8) 3.6数组函数 (9) 3.7日期时间函数和U R L函数 (12) 3.8目录文件函数 (12) 第四节P H P面向对象 (14) 4.1面向对象概念1 4 4.2类的结构成员1 5 4.3类的实例化与函数 (15) 4.4继承 (16) 4.5成员控制 (16) 第五节P H P+M y S Q L (16) 5.1P H P中M y S
4、Q L内置函数 (16) 5.2P H P+M y S Q L版本的网站设计 (20) 第六节实际博客项目 (22) 6.1分析项目 (22) 6.2后台(部分代码) (23) 6.3前台(部分代码) (26) 6.4实现效果 (29) 结束语.3 1 参考文献 (32) 致谢 (33) 第一节引言 近年来,php越来越来流行,由于所有的PHP源代码事实上都可以得到,PHP是免费的。程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP 可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WIN
5、DOWS、Mac OS下。PHP消耗相当少的系统资源。SiteTeam企业自助建站软件是一部专业为搜索引擎营销(网站优化SEO)而设计,操作极简单,网站极稳定、故障自动修复、在线升级维护、建站速度极快、专为大众上网营销而设计的完全免费开源企业建站系统!用PHP动态创建图像。php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。专业专注:PHP 支持脚本语言为主,同为类C语言。 PHP的语法与C,Perl,ASP或者JSP相比,对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都会变得很简单。你
6、只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来
7、说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 除了以上优点,PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易
8、用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切,而且无所不能! 第二节PHP的前言 2.1 PHP的用途 1.编写服务器脚本(图) 2.编写命令行脚本 3.编写桌面应用程序 图2-1 编写web服务器脚本过程 2.2 wamp环境 W代表:Windows平台,a代表:Apache服务器,m代表:mysql数据库,p 代表:PHP语言;先安
9、装Apache服务器,在安装PHP,最后安装mysql。 (1)PHP官网下载:x- 函数名(参数列表) 函数体return 返回值。 (2)变量的作用域和生命周期:变量的分类:局部变量在函数体内定义的变量,全局变量函数体外主程序定义的变量。变量的作用域:局部变量在函数体内有效(可见),全局变量在整个程序脚本中有条件有效(有条件可见)。变量的生命周期:局部变量从声明语句开始到函数结束,全局变量从声明语句开始到脚本结尾。global函数局部中使用全局变量,必须先用该关键字声明,方可使用。static静态变量强制性将变量的生命周期延续到下一次调用;静态变量仅在局部函数域中存在。 (3)函数的参数:
10、语法:type function 函数名(参数列表) 函数体return 返回值函数的参数列表可以有,也可以没有;多个参数用半角英文逗号(,)分隔;默认参数从右向左。无参数的函数:function displayBR() echo ;;有参数的函数:function displayBR($n) for($i=0;$i值对应的方式存储,一个名=值对仅仅是一条记录,COOKIE中的内容大多数是经过加密的。 图3-2 COOKIE在客户端的设置 PHP中COOKIE函数:PHP 用setcookie 函数来设置cookie Cookie 数据在传输过程中是作为页面请求的一部分进行传输,在浏览器客户端
11、和服务器之间传递信息,PHP中的Cookie是用全局变量数组进行赋值和调用的:$_COOKIE超全局数组变量(字符串关联数组)。设置COOKIE的PHP函数:setcookie(变量名 ,变量值, 过期时间(unix秒), 有效路径, 有效域名);变量名:参数是设置cookie的名字。变量值:设定了cookie的值。过期时间:cookie 变量有效期的截至时间(超过则失效),是一个标准的Unix时间标记,可以用time()函数取得,以秒为单。cookie的有效路径和有效域名。 if(!isset($_COOKIEmycookie) echo 没有mycookie参数,开始设置mycookie参
12、数值; setcookie(mycookie, dayu, time()+1); else echo 已设置了mycookie的值:.$_COOKIEmycookie; 删除COOKIE(两种方法):setCookie(cookieName); 赋空值setCookie(cookieName, value, time(); 设过期时间。使用cookie 的限制,不同的浏览器版本,浏览器型号对cookie 的处理不同,客户端可以禁用cookie ,浏览器也会限制cookie 的数量,cookie 本身不存在危险。 2.会话控制之SESSION:客户端禁用COOKIE时如何控制会话: 访问网站的来
13、客会被分配一个唯一的标识符,即所谓的会话 ID。它要么存放在客户端的 cookie,要么经由 URL 传递。 SESSION变量只对相同ID的会话有效,限定了用户和服务器的关联;相等的session_id表明是同一个会话。session_start();开启会话echo session_id( );获得当前会话的ID。 SESSION:PHP中使用超全局变量数组$_SESSION来存储设置信息(字符串关联数组) SESSION会话中的数据存放在服务器端;SESSION_ID会话ID默认存放在客户端的Cookie中。 PHP中使用SESSION会话的工作流程:脚本中启动会话session,或根据
14、配置文件php.ini中设置的自动启动会话session,设置取得当前会话ID,即session_id系统可自动完成,返回注册销毁该会话中的变量值,通过cookie 或URL GET参数传递session_id系统可自动完成,进入下一个脚本执行。 php.ini中关于session的配置项:session.save_path :session信息在服务器端的存储路径,session.auto_start :自动启用session,默认不自动。如果设置为1,则不用每次访问时都先session_start()。修改php.ini配置,不用cookie存储会话ID,而用URL的GET传递: e_co
15、okies :使用cookie 来保存session_id,默认是 e_only_cookies:仅使用cookie来保存session_id ,默认是 e_trans_sid:是否可以通过URL传递会话ID,默认不允许。 SESSION操作时使用的常用函数:session_start( ) :指明php脚本需要使用session会话;要使用session必须先调用此函数开启会话,除非php.ini中已设置自动开启session_id( string $sid ):设置得到session的id值; 设置新的session_id意味着启动一个新的session会话,或设置sid开启一个已有的会话
16、。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中的“垃圾回收”设置的数据有效
17、时间和回收比例共同作用后自动清除的。session数据默认的有效期为:浏览器关闭后session失效(推荐在火狐中测试)浏览器不关闭,但没有任何操作(无数据刷新等交互动作),一段时间后session失效推荐自定义设置session的失效时间原理:利用Cookie中session_id会话编号的保存时间,即可设置session变量的保存时间;setcookie(session_name(), session_id(), time()+30);。 3.3 输出函数和引用函数 输出函数:echo 输出字符串(仅能输出标量),无返回值echo(str); 或echo str;print_r常用于打印数
18、组或对象,将会按照一定格式显示键和元素。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只包含一次的引用函数:
19、分别与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 返回大于变量的最小整
20、数,floor返回小于变量的最大整数,round返回对浮点参数的四舍五入值,max返回参数中最大的值,min 返回参数中最小的值,rand 返回随机数(可指定随机数范围),sqrt 返回参数的平方根,pow 返回参数的幂。 3.5 字符串函数 与字符串长度有关的函数,计算字符串长度,语法:int strlen ( 字符串 ) ,返回值:字符串长度的数值。$str = ($str);11$str = 北京欢迎您;echo strlen($str); utf8下一个汉字的长度为3;GB2312下一个汉字的长度为2。清除字符串头尾空白字符,语法:trim ( 字符串 ) ,返回值:清除头尾空白字符后
21、的字符串,$str = “北京欢迎您”; 前有空格echo trim($str); $str =“北京欢迎您”; 前后各有空格echo trim($str);。 转换字符串英文字符大小写的函数:将字符串全部转化为大写语法:strtoupper ( 字符串 ) 返回值:全部大写的字符串;将字符串全部转化为小写,语法:string strtolower ( 字符串 ) ,返回值:全部小写的字符串。 与字符串位置有关的函数:返回字符串中指定位置的字符不用函数,$str = =php_mbstring.dll扩展。替换指定截取位置字符串函数,放回被替换后的源字符串,语法:substr_replace
22、( 源字符串 , 替换部分的新字符串 , 起始位置 , 截取长度 ),返回值:截取替换后的新字符串,该函数的后两位参数同substr函数一样,可取负数。 与HTML有关的字符串函数:换行字符转化为回车标签,语法:nl2br ( 字符串 ) ,返回值:字符串,常用于格式化textarea的纯文本内容。将字符串中的HTML标签剔除掉,语法:strip_tags ( 字符串 , 允许保留不被删除的标签 ),返回值:字符串。将字符串中的HTML标签剔除掉strip_tags。字符串中的HTML标签特殊字符的转义,语法:string _array ( 搜索的元素值, 数组 , 是否要求类型相同 ),返回
23、值:布尔值;找到则返回true,否则返回false,是否要求类型相同默认为false。 2.搜索关联索引数组的键是否存在,语法:array_key_exists ( 搜索的键名, 数组 ),返回值:布尔值;找到则返回true,否则返回false。 3.搜素关联数组中的元素值,语法:array_search (搜索的元素值, 数组 , 是否要求类型相同 ),返回值:找到则返回相应的键值;没找到则返回false。 遍历数组:数组元素遍历的方法foreach,foreach (array as $value) 代码,foreach (array as $key = $value) 代码。 确定数组大
24、小和元素唯一性:确定数组的大小count,用count和for循环配合实现数组遍历,常用于数字索引数组。for循环此方法局限性:只适用于数字索引有规则的数组;字符串索引或数字索引无规则的数组遍历只能用foreach。剔除重复的元素,并保持索引,语法:array_unique ( 数组 ),返回值:没有重复元素的数组。 数组排序:数组反向,语法:array_reverse ( 数组 , 是否保存索引(默认false) ),返回值:反序后的数组。数组排序,按值升序排序对数组元素按值从低到高的升序排列,语法:sort ( &数组 , 排序设置 ),返回值:无,参数为&传址,所以无返回值;排序后将直接
25、影响原数组,排序设置:实际开发中系统自动识别,SORT_NUMERIC:按数值排序(适用于数字),SORT_REGULAR:按ASCII码值排序(适用于英文字符),SORT_STRING:按字符大小排序(适用于英文字符串)。 其他数组操作函数:将数组元素顺序重新打乱(洗牌),语法:shuffle ( & 数组 ),返回值:无,索引将重置。数组值求和,语法:array_sum ( 数组 ),返回值:整数值。从字符串索引数组中将键值对的元素提取成一些变量,用字符串索引作为变量名,元素值作为变量值;一个键值对提取为一个变量;语法:extract ( 字符串索引数组 ),var_array 操作的源数
26、组(必须是字符串索引数组),返回值:提取的元素数量,整数值。把非字符串索引数组中的元素值提取为一些单个变量,语法:list ( 变量 , 变量, . . ) = 数组,不是函数,仅仅是PHP的一种语句(语法结构)。从数组中随机提取并返回N个元素的索引,语法:array_rand ( 数组,提取个数 ),返回值:提取的索引组成的数组。 超全局变量$_GET和$_POST数组:表单的method分为两种:post和get,action 的地址完全是两种不同的URL格式。 3.7 日期时间函数和URL函数 UNIX时间戳:UNIX时间戳将1970年1月1日 00: 00: 00 作为所有日期计算的基
27、准点,该基准点用秒为单位表示,该基准点设为0,该日期( 1970年1月1日 00: 00: 00) 称为UNIX纪元,UNIX时间以通用时区(UTC)为默认时区。PHP语言中大量采用UNIX时间戳作为日期时间格式。 PHP的日期时间函数:获得设置时区中国大陆的“亚洲上海”时区与“UTC”时区相差8个小时;我们写的程序都必须要在开头的部分加上时区的正确设置;时区设置要写在每个脚本的开始处;echo date_default_timezone_get(); 当前默认时区: UTCecho date(Y-m-d H:i:s); 输出当前时区的日期时间date_default_timezone_set
28、(AsiaShanghai); 设置时区:亚洲上海echo date(Y-m-d H:i:s); 设置时区后的日期时间。 获取当前时刻的UNIX时间戳。语法:time ( )返回值:10位整数Unix时间戳(单位秒)。获取特定日期时间的UNIX时间戳,语法:mktime ( 时 , 分 , 秒 , 月, 日 , 年 ) ,返回值:指定日期的10位整数Unix时间戳。echo mktime(); 当前日期时间的Unix时间戳,建议用time()函数替代无指定日期的mktime()函数。echo mktime(21, 30, 20, 11, 28, 2022); 即2022年11月28日21时30
29、分20秒的Unix时间戳。 验证指定日期是否正确有效,语法:checkdate ( 月 , 日 , 年 ) ,返回值:布尔值true或false。 格式化日期和时间语法:date ( 格式化控制字符串 , unix时间戳 ),返回值:格式化后的日期时间字符串。echo date(Y-m-d H:i:s,); 14:28:21。 根据字符串日期获得UNIX时间戳,语法:strtotime ( 字符串日期时间 ),返回值:10位整数的unix时间戳,常用:将固定格式字符串日期转化为Unix时间戳。 URL是一种特殊的字符串,常用于网络浏览方面;发送页面头信息,发送页面跳转指令:: );发送页面编码
30、指令: ( 路径文件名URL , 文件访问类型 ) ,返回值:文件入口句柄(资源类型),常用的mode访问类型有:wb+ :读写方式打开,将文件指针指向文件头并将文件大小截为零,每次都重写文件内容。如果文件不存在则尝试创建之。ab+ :读写方式打开,将文件指针指向文件末尾,每次都追加文件内容。如果文件不存在则尝试创建之。2.向文件写入内容,语法:fwrite ( 已打开的文件入口句柄 , 内容字符串 ) 别名函数:fputs,返回值:写入的内容字符串长度数字或错误时返回false。3.关闭文件(一个已打开的文件入口句柄),语法:fclose ( 已打开的文件入口句柄 ),返回值:布尔值。4.从
31、文件中读取部分内容,读取一个字符:string fgetc ( 已打开的文件入口句柄 ),读取一行字符串:string fgets ( 已打开的文件入口句柄 )。5.从文件读取全部内容,语法:file ( 路径文件名URL ),返回值:数组(文件中的每一行为数组中的元素)或读取失败返回false。6.读取文件内容并输出(至输出缓冲区),语法:readfile(路径文件名URL),返回值:输出的文件内容字符串长度数字。7.一次性写入读取文件内容(一次性写入将无法追加文件内容),写入:int file_put_contents ( 路径文件名URL , 写入的内容字符串 ) ,读取:string
32、file_get_contents ( 路径文件名URL )。 文件上传操作的函数:上传文件到PHP指定的临时文件夹中(系统自动完成),PHP 脚本对临时上传的文件进行限制条件过滤判断,是否有上传文件,是否正确(合法)上传,上传的体积是否合适,上传的类型是否合适,符合判定条件后,转移成功上传的临时文件到正式的目录位置中,并进行重命名等操作,判断执行结果是否正确。上传文件时的特殊要求:表单提交方式必须是POST方式,表单属性设置为 enctype=multipartform-data,上传文件使用file控件,且必须设置name属性,PHP程序使用超全局数组$_FILES。$_FILES超全局变
33、量数组的结构:$_FILESuserfilename:客户端原上传文件名,$_FILESuserfiletype:文件的MIME类型,例”imagegif”,$_FILESuserfilesize:已上传文件的大小,单位为字节(byte ),$_FILESuserfiletmp_name:上传后的临时文件名,$_FILESuserfileerror:文件上传操作中的错误代码。判断文件是否是通过HTTP POST 合法上传的,语法:is_uploaded_file ( 路径文件名URL ),返回值:布尔值,移动上传(临时)文件到新目录中,语法:move_uploaded_file ( 原路径文件
34、名URL,目标路径文件名URL ),返回值:布尔值。常见的$_FILESuserfileerror错误代码含义:值为0:没有错误发生,上传成功,值为1:上传的文件超出了php.ini中upload_max_filesize设定的最大值,值为2:上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值,值为3:文件只有部分被上传,值为4:没有文件被上传。上传文件的大小建议是以PHP脚本中的判断为准;要求特殊时,以项目单独设置判断条件为准。 第四节PHP面向对象 4.1 面向对象概念 OOP(Object Oriented Programming )面向对象程序设计,面向对象有助于
35、程序的开发和代码的重用如今,软件开发都要求使用面向对象的设计思想(传统的是面向过程)。 面向过程和面向对象开发的区别:面向过程的编程,程序围绕着:正在开发什么步骤来编写面向对象的编程,程序围绕着:谁将被影响、影响了什么来编写。两种开发方式的实例:将大象关进冰箱面向过程方法以操作步骤为核心打开(冰箱); 移动(大象, 冰箱); 关闭(冰箱)。面向对象方法以操作目标为核心冰箱-打开();大象-移动(外, 内);冰箱-关闭()。 类表示彼此之间有一些关系的对象的集合类为属于该类的对象提供统一的抽象描述类是一个整体概念,它包含有:名称(类名)、属性、方法。例如:人类。对象:对象是类的具体实例对象是用来描述客观事物之间能够互相交互对象是有身份、行为、特征的。例如:人类中的具体某一个人。对象的属性:对象本身具有的常量、变量和特性,例如:人类中的具体某一个人的姓名。对象的方法:对象的方法是对象可以执行的、可以改变其自身或对其他对象产生作用和影响的行为和手段,例如:人类的说话。 4.2 类的结构成员