PHP程序设计电子教案_第1页
PHP程序设计电子教案_第2页
PHP程序设计电子教案_第3页
PHP程序设计电子教案_第4页
PHP程序设计电子教案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程

课章节:第一章PHP入门课时4学时

教学目的:通过学习,学生可以了解PHP程序的工作流程,并可以编写、运行简单的

PHP程序

教学重点:PHP程序工作流程以及PHP运行环境的安装、配置。

教学难点:PHP程序的工作流程在windows中配置Apache、PHP以及MySQL。解锁第

一个PHP程序的工作流程。

教学内容:

1-1PHP概况

1.PHP的优势

PHP发展到今人,只备了很多优势:

(l)易学好用(2)免费开源(3)良好的可扩展性(4)平台无关性(跨平台)

(5)功能全面(6)数据库支持(7)面向对象编程

2.PHP的应用领域

PHP主要月于以下3个应用领域。

(l)服务器端脚本程序(2)命令行脚木程序(3)桌面应用程序

使用PHP编写服务器端脚木程序是PHP最常用的应用领域,这也是木课程着重阐述

的内容。

3.HTML内嵌式的脚本语言

这是我的第一个PHP程序:

教<br/>

学<?php

实echo"helloworld!"?>

施<br/>

过<?phpechodate("y年m月d日h时i分s秒"?>

程注意:PHP代码通常以符号“<?php开始,符号?>”结束,这两个符号分别叫做

设PHP开始标记和结束标记。

计PHP程序文件名中的扩展名通常使用“.php“,例如helloworld.php

1-2PHP脚本程序工作流程

1.WEB浏览器

WEB浏览器(WEBBrowser)也叫网页浏览器,简称浏览器。浏览器是用户最为常

用的客户端程序,主要功能是显示HTML网页内容,并让用户与这些网页内容产生

互动。常见的浏览器有微软的InternetExplorer(简称IE)浏览器、Mozilla的

Firefox浏览器等。

2.HTML简介

HTML是网页的静态内容,这些静态内容由HTML标记产生,WEB浏览器识别这些

HTML标记并解释执行。例如WER浏览器识别HTML标记“<br/>”,将<br/>

标记解析为一个换行。在PHP程序开发过程中,HTML主要负责页面的互动、布局

和美观。

3.PHP预处理器

PHP预处理器(PHPPreprocessor)的功能是将PHP程序中PHP代码解释为文本信

软件工程

息,这些文木信息中可以包含HTML代码。

4.web服务器

WEB服务器(WEBServer)也称为WWW(WordWideWeb)服务器,功能是解析

HTTP。当WEB服务器接收到浏览器的一个HTTP动态请求时.WEB服务器会调用

与请求对应的程序,程序经PHP预处理器解释执行后,WEB服务器向浏览器返回

HTTP响应,该响应通常是一个HTML页面.浏览器接收到该HTTP响应后,将执行

结果显示在浏览器或进行其他处理。

常见的WEB服务器有微软的InternetInformationServer(IIS)服务器、IBM

的WebSphere服务器、开源的Apache服务器等。其中Apache具有免费、速度快

且性能稳定等特点,它已成为目前最为流行的WEB服务器。

5.数据库服务器

数据库服务器(DataBaseServer)是一套为应用程序提供数据管理服务的软

件,这些服务包括数据管理服务(例如数据的添加、删除、修改、杳询)、事务管理

服务、索引服务、高速缓存服务、查询优化服务、安全及多用户存取控制服务等。

常见的数据库服务器有甲骨文的Oracle、微软的SQLServer、IBM的DB2、SAP

的Sybase以及SUN公司的MySQL数据库服务器。由于MySQL具有体积小、速度快、

免费等特点,许多中小型WEB系统选择MySQL作为数据库服务器。

6.PHP程序的下作流程

l-3PHP服务器构建

1.安装Apache服务器:

双击11文件httpd--win32-x86-openssl-0.9.8r.ms,在安装程序打开窗口中,除

了制定安装目录,并设定输入土机名、管理员信箱。

一路选择“Next”下去,完整安装。注(在此我们将Apache服务器安装在

D:/apache/apache2.2)安装完成后,在任务栏托盘区中会增加一个Apache服务程

序运行图标,这说明服务器已经安装成功,在IE地址栏中键入迎

http://localhost/,即可看到Apache的欢迎页面。

2.设置Apache的服务端口

在Apache安装路径下的D:\Apache\Apache2.2\conf\文件夹中,打开

httpd.conl文件,找到“listen80”所在的一行,将“80”改为白己希望的端日

号,如8000。修改后,停止Apache服务,再启动,然后再浏览器地址栏中输入

http://localhost:8000,观察效果。

3.安装PHP环境

将php也解压缩在d:/apache/php日录下

4.配置PHP参数

(l)在步骤2所用到的httpd.conf文件中,在文件最后加上以下三行代码

PHPIniDir“D:\Apache\php”

LoadModulephp5_module“D:\Apache\php\php5apache2_2.dll"

AddTyPeapplication/x-httpd-php.php

其中:

①PHPIniDir:“一行的”中填写为PHP的安装路径。

②LoadModulephp5_module”一行的”填写为PHP的安装路径\

php5apache2_2.dll。

(2)设置PHP文件存放路径

打开httpd.conf文件,在文件最后加上<Directory“D:\Apache\wwwroot">

软件工程

(D:\Apache\wwwroot是放置web目录的路径,路径即是存放网站的路径)

OptionsIndexesFollowSymLinks

AllowOverrideNone

Orderallowdeny

Allowfromall

</Directory>

(3)配置启用默认文档

打开D:\Apache\Apache2.2\conf\httpd.conf

<IfModuledir_module>238行附近,设置启用默认文档

Directorylndexindex.htmlindex.php

</ItModule>

(4)配置虚拟目录

①打开httpd.conf文件,启用Includcconf/extra/httpd-vhosts.conf

②打开Apache\Apache2.2\conf\extra中的httpd-vhosts.conf文件并进行配置,

即设置虚拟目录与域名,在D盘的Apache文件夹下创建wwwroot文件夹。

<VirtualHost*:80>

ServerAdmin

DocumentRoot”D:\Apache\wwwroot\test“

ServerNametest

ErrorLog”D:\Apache\wwwroot\test\logs\error.log“

CustomLog””common</VirtualHost*:80>

ServerAdminwebmater@dummy-host2.locallost

DocumentRoot“D:\Apache\wwwroot\phpMyAdmin”

ServerNamemysql

ErrorLog””

CustonLog“”common</VirtuaHost>

注:以上的logs文件夹是存放错误日志的文件夹

(5)找到PHP的安装路径下的php.ini(复制一份php.ini-dist,文件名修改

为php.ini),启用配置

找到:

extension_dir=”D:\Apache\php\ext”(491行附近,此行说明要调用ext

中的文件)

Session.save_path=”D:\Apache\tmp”(session临时保存的文件夹,其中tem

是白行创建的,995行附近)

extension=php_gd2.dll(前面的;去掉)启用618行附近

extension=php_mysql.dll(前面的;去掉)启用633行附近

upload_tmp_dir=“D:\Apache\tmp”(上传文件临时保存的文件夹,其中

tmp是自行创建的)549行附近

(6)将PHP安装路径下的文件php5ts.dll.libmysql.dll复制到Winnt

(Windows)/systenl32/目录中。

5.安装Mysql在Apache文件夹下,安装详细步骤见MySQL详细安装步骤.doc文

档。

6.配置Mysql数据库的管理程序phpMyAdmin

①将phPMyAdmin整个文件夹复制到wwwroot文件夹下,phpMyAdmin是用来管理

软件工程

数据库MySQL的程序;

②在wwwroot创建一个名为test的文件夹,该文件夹即是存放网站的文件夹;

7.配胃C:\WINDOWS\system32\drivers\etc下的hosts文件,即域名和本地IP

()一致。

8.创建一个简单的PHP程序,保存为index.php,并将其存放test文件夹下在

地址栏里输入http://test/,如果输出hello,world!,说明环境配置正确

<html>

<head>

<title>Firstprogram</title>

</head>

<body>

<?php

echo“helloword!”;

?>

</body>

</html>

9.上述(1)、(2)、(3)、(4)、(5)、(6)、(7)都做完后,重新启动Apache服务。

复习及作业布置:

自己动手搭建PHP运行环境及其配置。

扩展学习参考:

课后反思:

教学过程:

1、介绍一下课程的情况,包括课时,学分,课程的性质,学生学习本课程能获得什么

知识能达到什么目的,强调课程的重要性以及课程学习好的方法。介绍本课程的考核方

式,强调平时成绩的重要性。

2、借助多媒体课件,对PHP进行介绍,介绍PHP脚本程序工作流程,演示服务器的构建。

介绍代码基本语法及PHP程序组成及编码规范。

3让学生自己实际动手操作搭建运行环境。

授课章节:第二章PHP基础课时4学时

软件工程

教学目的:通过学习,学生可以从整体上认识PHP程序的各个组成部分,并可以制作功

能简单的用户注册系统。

教学重点:PHP数据、PHP数据类型、浏览器端的数据采集、PHP程序的数据采集、

PHP数据处理、PHP数据的输出。

教学难点:编程规范习惯的养成PHP数据、PHP数据类型、浏览器端的数据采集、PHP

程序的数据采集、PHP数据处理、PHP数据的输出。

教学内容:

2-1PHP代码基本语法

(1)开始标记“<?php”和结束标记“?>”

(2)开始标记“<scriptlanguage=”php””>和结束标记“</script>”

(3)开始标记“<?”和结束标记“?>”

(4)开始标记“<%”和结束标记“%>”

2.PHP注释

PHP支持如下三种注释风格(例如程序annotation.php):

第一种:/*多行注释风格*/;

第二种://单行注释风格;

第三种:#号单行注释风格。

<?php

/*

这是PHP多行注释

3.PHP语句及语句块

PHP程序一般由若干条PHP语句构成,每条PHP语句完成某项操作。PHP中的每条

语句以英文分号“;“结束,只有PHP结束标记之前的PHP语句可以省略结尾分号。

如果PHP语句之间密不可分,可以使用“{”和“}”,将这些PHP语句包含起来形成

语句块。单独使用语句块时没有任何意义,语句块只有和条件控制语句(if-else)、

循环语句(for和while)、函数等一起使用时才有意义。

2-2PHP程序的组成

从功能的角度,完整的PHP程序可以划分为三个组成部分:数据的采集、数据的

处理和数据的输出,其中PHP的数据采集主要包括三个过程:浏览器端的数据采集、

浏览器端数据的提交和PHP程序的数据采集。

1.关于PHP数据

与传统的高级语言一样;

(1)PHP使用变量或常量实现数据在内存中的存储,并使用变量名(例如$userName)

或常量名(例如PI)实现了内存数据的按名存取。

(2)PHP使用等于号“=”(赋值运算符)给变量赋值。

(3)PHP不允许直接访问一个未经初始化的变量,否则PHP预处理器会提示Notice

信息。

(4)PHP提供变量作用域的概念实现内存数据的安全访问控制。

(5)PHP引入了数据类型的概念修饰和管理数据。

与传统的高级语言不一样:

(1)PHP变量名之前要加美元符号“$”标识,例如$userName变量。

(2)PHP是一种“弱类型的语言”,声明变量或常量时,不需要事先声明变量或常

软件工程

量的数据类型,PHP会自动由PHP预处理器根据变量的值将变量转换成适当的数据

类型。

2.PHP数据类型

PHP数据类型分为四种:标量数据类型、复合数据类型、特殊数据类型和伪类型。

其中标量数据类型分为四种:布尔型、整型、浮点型和字符串型;

复合数据类型共有两种:数组和对象;

特殊数据类型有资源数据类型和空数据类型;

伪类型通常在函数的定义中使用。

3.浏览器端的数据采集

浏览器端数据的采集主要依靠HTML提供的FORM表单实现。FORM表单是包含一系列

表单元素的区域,表单元素是允许用户在表单中输入信息的元素。常见的表单元索

有:文本域、下拉列表、单选框、复选框等。

4.PHP程序的数据采集

PHP程序register.php负责采集用户注朋FORM表单提交的数据,然后进行显示。

<?php

$userName=$_GET[“userName”];

$password=$_GET[“password”];

$confirmPassword=$_GET[“confirmPassword”];

//以下代码输出$userName变量、$password变量、$confirmPassword变量的值,

并输出换行符

echo$userName;

echo$”<br/>”;

echo$password;

echo$”<br/>”;

echo$confirmPassword;

?>

5.PHP数据处理

修改后的register.php程序负责采集表单提交数据,然后对这些数据进行简单处

理。<?php

$userName=$_GET[“userName”];

$passsword=$_GET[“password”];

$confirmPassword=$_GET[“confirn1Password”];

if($passsword==$confirmPassword){

echo”您可以注册了”;

echo"<br/>";

echo“您加密后的密码为:”;

echomd5($passsword);

}else{

Echo”您输入的密码和确认密码不一致,请重新注册1”;

}

?>

PHP经常使用echo语句向浏览器输出字符串数据,除了echo语句外,还可以使用

Print语句或Printf()函数向浏览器输出字符串数据。

软件工程

echo与Print输出的是没有经过格式化的字符串,而print()函数则是输出经过格

式化的字符串。对于复合数据类型的数据(如数组或对象),可选用print_()函数

输出。如果HTML代码块中只嵌入一条PHP语句,且该PHP语句是一条输出语句,

此时可以使用输出运算符<?==?>输出字符串数据。

2-3编码规范

1.书写规范

(1)缩进(2)大括号{}(3)运算符

2.命名规范

(1)类(2)常量(3)变量(4)数组(5)函数(6)数据库表字段(7)

类文件

软件开发是一种高级脑力劳动,精妙的算法之后往往伴随着难以理解的代码,对于

不经常维护的代码,往往连开发者本人也忘记编写的初衷。要为代码添加注释,增

强代码的可读性和可维护性。有时添加注释和编写代码一样难,但养成这样的习惯

是必要的。请记住:尽最大努力把方便留给别人和将来的自己。

复习及作业布置:

扩展学习参考:

课后反思:

教学过程:

复习导入:

本章着重讲述PHP基本语法、PHP程序的组成以及PHP编码规范,详细讲解PHP数

据类型以及数据输出等知识。通过本章的学习,读者可以从整体上认识PHP程序的各个

组成部分,并可以制作功能简单的用户注册系统。

讲解新知:

3.PHP程序的组成

授课章节:第三章PHP表达式课时4学时

软件工程

教学目的:通过学习,学生可以了解变量、常量、常用运算符、变量状态函数以及类型

转换的相关知识,为今后设计更为复杂的程序奠定坚实的基础。

教学重点:isset()函数、unset()函数、empty()函数的使用字符串连接运算符、错误抑制

符、比较运算符等运算符的使用数据类型的转换。

教学难点:理解“空”与NULL的区别,数据类型的自动转换。

教学内容:

3-1常量

1.自定义常量

define()函数的语法格式:

define(name,值为value[,Booleancase_insensitive])

功能:定义一个名字为name,值为value的常量:ase_insensitive参数的默认

值默认为FALESE,表示常量名name大小写敏感(区分大小写):case_insensitive

参数值如果为TRUE,表示常晕名name大小写不敏感(不区分大小写)。说明:常量

名name为字符串类型数据,常量值value必须是标量数据类型数据。

注意:常量名前面不加前缀”$”符号。

常量的作用域是全局的,不存在使用范围的问趣,可以在程序任意位置进行定

义和使用常量。常最一旦被定义,其值不能在程序过程中修改,也不能被销毁。

2.常量的内存分配

内存中专门为常量的存储分配了一个空间:常量存储区。常量存储区是一块比

较特殊的存储空间,位于该存储空间的常量是全局的,且在程序运行期间不能修改

和销毁。

3.预定义常量

PHP还预定义了许多常最,这些常量无需使用define()函数定义,可直接在程

序中使用。

(1)_FILE_(FILE前后是两个下划线):当前正在处理的脚木文件名。

(2)_LINE_(LINE前后是两个下划线):正在处理的脚本文件的当前行数。

(3)PHPV_VERSION:当前PHP预处理器的版本。

(4)PHP_OS:PHP所在的操作系统的类型,如Linux。

(5)TRUE:表示逻辑真:FALSE常最:表示逻辑假:NULL常最:表示没有值或

值不确定。

(6)DIRECTORY_SEPARATOR常量:表示目录分隔符,Unix或Linux操作系统环境

时的值为“/”Windows操作系统环境时的值为“\”。

3-2变量

1.变量基本概念

变量是用于临时存储数据的容器,这些数据可以是任意一种数据类型的数据

PHP中的变最名遵循以下规则:

(1)变量名必须以美元符号($)开头,例如:$userName。

(2)变量名的第一个字符必须是字母或下划线(不能是数字),变量名称可以包含

字母、数字和下划线的组合。

(3)PHP中的变量名是区分大小写的,这是一个非常重要的规则。这意味着

$userName和$UserName是截然不同的两个变量。

2.变量赋值方式

软件工程

(1)传位赋值方式

(2)传地址赋值方式

3.可变变量

PHP提供了一种特殊类型的变量:可变变量,可变变最允许PHP程序动态地改

一个变量的变量名,可变变量的工作原理是用一个变量的“值”作为另一个变量的

“名”。

3-3有关变量或常量状态的函数

“空”

(1)empty()函数

(2)is_nul()函数

5.数据类型检查函数

3-4PHP运算符10.执行运算符11.位运算符12.运算符优

先级

3-5数据类型的转换

复习及作业布置:

扩展学习参考:

课后反思:

教学过程:

复习导入:

PHP表达式是PHP程序最为重要的组成部分,PHP表达式指的是将相同数据类型或不同数据类

型的数据,用运算符号按一定的规则连接起来、有意义的式子,木章可以围绕表达式详细讲解表达

式中涉及的变最、常量以及常用运算符,最后讨论表达式中数据类型之间的相互转换。

讲解新知:

(1)详细讲解常量(2)详细讲解变量(3)介绍有关变量和常量状态的函数(4)

详细讲解PHP运算符(5)介绍数据类型的转换最后对本次课内容进行总结

授课章节:第四章PHP流程控制课时4学时

教学目的:通过学习,学生可以了解条件控制结构、循环结构以及程序跳转和终止语句

3种类型的PHP流程控制语句,这3种类型的流程控制构成了面向过程编程的核心。通

过学习,为今后设计更为复杂的程序奠定坚实的基础。

教学重点:if…else…语句、switch语句、while语句以及break语句、continue语句、exit

语句。

软件工程

教学难点:switch语句、while语句以及break语句、continue语句、exit语句。

教学内容:

4-1条件控制结构

语句

If语句的语法格式为:

If(条件表达式){

语句块

}

2.if………else语句

if…….else语句的语法格式为:

if(条件表达式){

语句块1

}else{

语句块2

}

3,.switch语句

Switch语句的语法格式:

Switch(表达式){

Case值1:语句块1;

break;

Case值2:语句块2;

break;

……………

Default:

语句块n;

}

4-2循环结构

1.while循环语句

while循环语句是最简单的循环语句,它的语法格式跟if语句相似:

while(条件表达式){

语句块;

}

……while循环语句

do……while循环语句的语法格式如下所示:

do{

语句块;

}while(条件表达式);

3.for:循环语句

for循环语句的语法格式如下所示:

for(表达式l;条件表达式2;表达式3){

软件工程

语句块;

}

for循环语句中,各表达式的功能如下:

表达式1的功能是初始化循环控制变量,表达式l只执行一次,并且不是必需

的。条件表达式2为循环控制条件,若条件表达式2值为TRUE,则执行语句块;

若条件表达式2值为队FALSE则跳出for循环。条件表达式2也不是必需的。表

达式3的功能是修改循环控制变量的值。表达式3也不是必需的。

4.循环结构应用

程序nine.php使用PHP循环结构制作九九乘法表。

4-3其他流程控制语句

1.continue语句

continue语句一般在for、while或do…while循环结构中使用。在循环

结构中,当程序执行至continue时,程序将跳过木次循环中剩余的代码并开始执

行下一次循环。例如程序continue.php的功能是计算l+3+5+…+99的奇

数和。

2.break语句

当break在switch语句中使用时,它会使程序跳出当前的Switch语句。brcak

语句还可以使用在for、while或do…while循环语句中,使得程序跳出当前循

环结构。例如程序break.php的功能时计算I+2+3+…+100的和。

3.终止PHP程序运行

exit语言结构的语法格式:voidexit([stringmessage])

exit语言结构的功能:输出字符串信息message,然后终止PHP程序的运行。例

如程序exit.php·

从程序exit.php的运行结果可以看出:

(1)使用逻辑或(or)表达式:$aor$b可以强制只有表达式$a的结果为队FALSE

时,表达式$b才会执行。

(2)当某个表达式运行失败时,该表达式的结果为FALSE。

复习及作业布置:

软件工程

扩展学习参考:

课后反思:

教学过程:

复习导入:

PHP程序中如果没有流程控制语句,PHP程序将从第一条PHP语句开始执行,一直运

行到最后一条PHP语句。流程控制语句用于改变程序执行次序,从而控制程序的执行流

程。

讲解新知:

(1)通过例子讲解条件控制语句

(2)通过例子讲解循环结构

(3)通过例子讲解程序跳转和终止语句

授课章节:第五章PHP数组课时4学时

教学目的:通过学习,学生可以了解数组的基本概念以及数组常用的处理函数,并掌握

几种数组遍历方法。

软件工程

教学重点:数组的遍历foreach语言结构、常用数组函数的使用、数组内部指针。

教学难点:各种数组遍历的方法常用数组函数的使用,例如快速创建数组的函数、数组

统计函数、数组指针函数、数组和变量间的转换函数、数组遍历语言结构、

数组检索函数。

教学内容:

5-1数组的基本概念

1.为什么引入数组

使用标量数据类型定义的变量只能存储单个“数据”,仅依靠标量数据类型远不现实生活中

的一些常见问题,例如一个设置个人信息的页面。

2.数组的分类

一维数组、二维数组、多维数组

5-2一维数组的创建

1.直接将变量声明为数组元素,一个变量声明为一个数组元素有三种方法:

第一种方法:不指定数组元素的“键”,示例程序:$characters[]=”humour”;

第二种方法:将数组元索的“键”指定为某个整数,示例程序:$iterests[2]=”music”;

第三种方法:将数组元素的“键”指定为某个字符串,示例程序:$colors[“red]=”

red”;

2.使用array()语言结构创建数组

PHP提供了array()语言结构创建数组,array()语言结构接受一定数量用逗号分隔

的key=>value参数对,这样可以一次性地为数组添加多个元素(若key省略,则

教key值为整数)。

学3.创建数组的注意事项

实(1)如果数组元素中的“键”是一个浮点数,则‘键”将被强制转换为整数(例如

施浮点数8.0将被强制转换为整数8),如果“键”是TRUE或FALSE,则‘键”将被

过强制转换为整数1或O。

程(2)如果数组元素中的“键”是一个字符串,且该字符串完个符合整数格式时,数

设组元素的“键”将被强制转换为整数(例如“9”将被强制转换为整数9)。

计(3)由于数组元素中的“键”唯一标识一个元素,因此数组中元素的“键”不能相

等(使用==比较)。如果两个数组元素的“键”相等,“键”对应的值将被覆盖。

(4)不要在array()语言结构中使用诸如”red=>””red”键值对的方式创建数组

元素,也不要使用诸如$colors[red]=”red”“值”的访问

访问数组元素值的方法和访问变量值的方法相同:通过指定数组名并在方括号

内指定”键名”的方式“访问”数组元素的”值”。使用这样的方法访问数组,不仅

可以读取某个数组元素的“值”,还可以为数组添加数组元素以及修改数组元素的

“值”,并可以像访问“变最”的方法访问数组元素的值。PHP提供两种变量赋值方

式:传值赋值和传地址赋值,对于数组同样适用。

5-3多维数组

“值”的访问

二维数组中存在两个“键”,因此访问数组元素的“值“时需要指定这两个”键”。

例如:$students[“2010001”][“studentName”]对应的值是”张三”,其中第

一个键”2010001”用于指定二维数组$studcnts中的某一‘行”,第二个“键”

$studentName用于指定二维数组$student的该“行”的某一“列”。只使用第一个

“键“访问数组时,访问的是二维数组中的某一“行”,该行是一个一维数组。

5-4数组处理函数及应用

软件工程

(1)range()函数

语法格式:arrayrange(mixedstart,mixedend)

函数功能:快速创建一个从start到end范围的数字数组或字符数组。

函数说明:如果start>end,序列将从start到end。

(2)explode()函数

语法格式:arrayexplode(stringseparator,stringst)

函数功能:使用指定的字符串分隔符separator分割字符串str,将分割后的字符

串放到数组中,并返回该数组。

(3)array_combine()函数

语法格式:array_combine(arraykeys,arrayvalues)

函数功能:创建一个新数组,用数组keys的值位作为新数组的“键”,数组values

的值作为新数组的“值”。

(4)array_fill()函数

语法格式:arrayarray_fill(intstart_key,intlength,mixedvalue)

函数功能:创建一个数组,并为该数组添加length个数组元素,数组元素的“键“,

从start_key处开始始递增,每个数组元素的值为value。

说明:length必须是一个大于零的数值,否则PHP会提示Warning警告信息。

(5)array_pad()函数

语法格式arrayarray_pad(arrayarr,intpad_size,mixedpad_value)

函数功能:array_pad()函数返回数组arr的一个拷贝,并用pad_value将其填

补到pad_size指定的长度。如果Pad_size为正,则数组被填补到右侧,如果为

负则从左侧升始填补。如果pad_size的绝对值小于或等于input数组的长度则没

有任何填补。

2.数组统计函数

(1)count()函数

语法格式:intcount(arrayarr[intmode])

函数功能:统计并计算数组arr中元素的个数。如果数组arr是多维数组,可将mode

参数的值设为常量COUNT_RECURSIVE(或整数l),计算数组arr中所有元素的个数;

mode的默认值是0。该函数的别名函数为sizeof()。

(2)max()函数

语法格式:mixedmax(arrayarr[,array……])

函数功能:统计并计算数组arr中元素的最大值。

说明:PHP会将非数值的字符串当成0处理,但如果这个正是最大的数值则仍然会

返回一个字符串。如果多个数组元素的值为0且是最大值,函数会返回其中数值的

0,如果数组元素中没有数值的O,则返回按字母表顺序最大的字符串。

(3)min()函数

语法格式:mixedmin(arrayarr[,array…])

函数功能:统计并计算数组arr中元素的最小值。

说明:PHP会将数组arr中的字符串当成0处理,如果字符串正是数组arr中最小

的数值,则仍然会返回一个字符串:min()函数返回一个字符串时,该字符串为数

组中顺序靠前的字符串。

(4)array_sum()函数

语法格式::numberarry_sum(arrayarr)

函数功能:统计并计算数组arr中的所有元素值的和,array_sum()返回整数或浮点

软件工程

数。说明:PHP会将数组arr中的非数值类型的元素值自动类型转换为整数或浮点

数。

(5)array_product()函数

语法格式:numberarray_product(arrayarr)

函数功能:统计并计算数组arr中所有元素值的乘积,该函数返回整数或浮点数。

说明:PHP会将数组arr中的非数值类型的数据自动类型转换为整数或浮点数。

复习及作业布置:

扩展学习参考:

课后反思:

教学过程:

复习导入:

数组(Array)是一组批量的数据存储空间,这一组存储空间在内存是邻接的,每一个存

储空间存储了一个数组元素,元素之间使用“键”(key)来识别,通过数组名和“键”

的组合数组中每一个元素的访问。然后按以下内容讲解:(1)讲解数组的基本概念

(2)通过演示讲解一维数组的创建(3)介绍多维数组(4)介绍数组处理函数及

应用最后对本次课内容进行总结

授课章节:第六章PHP的数据采集课时4学时

教学目的:通过学习,学生可以了解浏览器端数据的各种提交方式,如何创建FORM表

单实现浏览器端的数据采集,PHP程序各种数据采集的方法,以及如何实现文件的上

传功能。通过本章的学习,读者可以结合PHP数组实现功能复杂的“用户注册系统”。

软件工程

教学重点:设计FORM表单、文件上传的表单的设计以及如何实现文件上传功能。

教学难点:在FORM表单中使用数组文件上传的具体流程、与文件上传有关的配置

多文件上传的实现(可以参考习题以及习题答案)。

教学内容:

6-1浏览器端数据的提交方式

1.GET提交方式

GET提交方式是将“请求”数据以查询字符串(QueryString)格式附在URL之

后“提交”数据。例如:

http://localhost/2/register.php?userName=victor&password=

1234&confirmpassword=1234在这个URL中,问号“?”表示查询字符串的开始,

问号“?”后面的字符串参数"userName=victor&password=

1234&confirmPassword=1234”为查寻字符串。可以看出:查询字符串可以包含

多个参数,每个参数以“参数名=参数值”的格式定义,参数之间使用“&”相连,

最后再将查询字符串使用“?”附在URL之后。

另外,FORM表单也提供了GET提交方式。

除此以外,使用超链接<a></a>标签也可以实现浏览器端GET提交方式。

2.POST提交方式

POST数据提交方式一般通过FORM表单实现,由于默认情况下FORM表单的数

据提交方式为GET方式,必须在FORM表单的<form/>标签中加入属性:method=

“post”

还可以使用FORM表单实现GET和POST混合提交方式,即向WFB服务器某PHP

程序发出“GET请求”的同时,还向该PHP程序发出“POST清求”.

4.两种提交方式的比较

POST提交方式比GET提交方式安全。这是由于GET提交方式提交的数据将出现

在URL查询字符串中,并且这些带有查询字符串的URL可以被浏览器缓存到历史记

录中。因此诸如用户注朋、登录等系统,不建议使用GFT提交方式。

POST提交方式可以提交更多的数据。理论上讲POST提交方式提交的数据没有

大小限制,而GET提交方式提交的数据由于出现在URL查询字符串中,而URL的长

度是受限制的(例如IE浏览器对URL长度的限制是2083字节)。例如:新闻发布

系统中提交篇幅较长的新闻信息时,不建议使用GET提交方式:带有文件上传功能

的FORM表单则必须使用POST提交方式。不同的“提交”方式对应的服务器端数据

“采集”方式不同。

6-2相对路径和绝对路径

1.绝对路径

绝对路径是与相对路径相对立的,通常是一个完整的URL,该URL由两个部分构成:

scheme:用来描述寻找数据所采用的机制,即:协议。如http协议和ftp协议等

位置(Location):用来描述到哪儿去寻找数据的资源

这两部分使用“://”分隔,例如:/index.php就是一个绝对路

径URL,它表明了这样一个含义:使用http协议从一个域名为的WEB

服务器上获取index.php页面资源信息。由于绝对路径无论出现在哪儿都代表相同

的内容,因此绝对路径通常在访问系统外部资源时才使用,而访问系统内部资源时

一般使用相对路径,方便程序的移植。

2.相对路径

相对路径可以分为两类:server-relative路径与relative路径。

软件工程

server-relative路径是以斜杠“/”开头的相对路径。在HTML中,以斜杠“/”

开头的相对路径表示从WEB服务器的根目录下开始查找相应的资源文件。使用默认

配置安装WAMP后,目录“C:/wamp/www”为Apache服务器的根目录,因此使用相对

路径“”访问资源时,访问的是目录“C:/wamp/www”下的index.php页面;使用

相对路径“”访问资源时,访问的是目录“C:/wamp/www”中的目录“6”下

的register.html文件。relative路径不以斜杠开头。此时当文件l访问

文件2(HTIL页面、PHP程序或图片等)资源时,将从文件1的当前目录作为起点

查找文件2资源。例如当目录“C:/wamp/www/6/”中的register.html文件使用超

链接访问该目录下的register.php文件时,只需在register.html文件的超链接

中直接指定register.php文件即可。

3.相对路径其它概念

(1)同一个日录下的资源访问

如果文件1和文件2在同一个日录,这两个文件间的相互访问直接使用文件名

即可。

(2)如何表示当前目录

.表示文件的当前日录。

(3)如何表示上级目录

../表示文件所在目录的上一级目录,../../表示文件所在目录的上上级目录,

以此类推。

(4)如何表示下级目录

如果文件1访问下级目录中文件2,直接指定该目录和文件2的文件名即可。

6-3使用FORM表单实现浏览器端的数据采集

FORM表单由三部分组成:

表单标签:定义了表单处理程序及数据提文方式等信息。

表单控件:包括单行文本框、密码框、隐藏域、多行文本框、复选框、单选框、下

拉选择框和文件上传框等表单控件。

表单按钮:包括提交按钮、复位按钮和一般按钮。

1.表单标签<form></form>

表单标签<form>常用的属性有action、method、enctype、title、name等。

(1)action属书设置当前表单数据“提交”的目的地址。当不设置action属性,

或设置值等于空字符串(即action="")时,表单数据提交给当前页面。

(2)method属性设置表单数据的提交方式。method属性的值为GET或POST,默

认为GET。

(3)title属性设置表单的提示信息。当用户的鼠标在表单处停留时,浏览器用一

个黄色的小浮标显示提示文本。

(4)enctype属性设置提交表单数据时的编码方式.enctype属性的位为

multipart/form-data或application/x-www-urlencodded,默认为”

application/x-www-form-urlencoded”。当一个FORM表单‘中存在文件上传框时,

必须将enctype属性设置为multipart/form-data编码方式。

(5)name属性为当前的FORM表单命名。

2.表单控件

(1)单行文本框(2)密码枢(3)多行文本枢(4)隐藏域(5)复选枢

(6)单选枢(7)文件上传框(8)下拉选择框

注意:表单控件嵌套在FORM表单中才有意义,每个表单控件都要一个name属性进

软件工程

行标识。这是因为WEB服务器将依据表单控件的name属性判断传递给服务器的每

个值分别是由哪个表单控件产。为了确保数据的准确采集,需要为每个表单控件定

义一个独一无二的名称(同为一个组的单选框以及在表单控件中使用数组两种情况

除外)。

3.在表单控件中使用数组

在一个HTML页面中,有时并不清楚某种表单控件的具体个数。例如:在进行多

文件上传时,并不能确定浏览器用户究竟选择多少个上传文件,更无法确定页面中

需要多少个文件上传框。在表单控件中使用数组可以解决类似的问题。

在表单控件的name属性值后面加上方括号“[]”从而实现在表单控件中使用数

组。使用表单控件数组后,当表单提交时,相同name属性的表单控件则以数组的方

式向WEB服务器提交多个数据。

4.表单按钮

(1)提交按钮(2)图像提交按钮(3)重置按钮(4)自定义按钮

5.FORM表单综合应用

6-4使用$_GET和$_POST“采集”表单数据

当浏览器向WFB服务器某PHP程序提交数据后,该PHP程序应该根据其“提交”

方式决定使用何种数据“采集”方法。当浏览器以GET方式提交的数据时,服务器

端PHP程序应当使用预定义变最$GET“采集”提交数据:当浏览器以POST方式提

交的数据时,服务器端PHP程序应当使用预定义变量$_POST“采集”提交数据;

当以POST方式提交的请求数据中包含上传文件时,服务器端PHP程序应当使用预

定义变星$_FILES“采集“上传文件。

6-5上传文件的“数据采集”

1.与上传相关的配置

下面的配置选项保存在php.ini配置文件中,可以适当的修改这些的配置选项满

足特定的文件上传需要。

file_uploads:配置了是否允许通过HTTP协议上传文件。默认值为On,

表示PHP预处理器支持文件上传功能。典型配置示例:file_uploads=On。

post_max_size:使用POST提交方式提交表单数据时,post_max_size选项配

置了PHP预处理器能够接受的最大表单数据大小。默认值为8M,表示表单中所有数

据(包括上传文件)大小之和必须小于8M字节,否则PHP程序将不能采集到任何

的表单数据。即当表单数据大小大:post_max_size选项定义的值时,提交表单后,

$_GET、$_POST和$_FILES将为空数组。典型配置示例:post_max_size=

8M。

2.PHP文件上传流程

3.预定义变最$_FlLES

4.预定义变量$_FILES

5.PllP文件上传的实现

6-6WEB服务器端其它数据采集方法

复习及作业布置:

软件工程

扩展学习参考:

课后反思:

教学过程:

复习导入,本章首先讲解浏览器端数据的提交方式,然后讲解如何创建FORM表单实现浏览器端的数

据采集,最后讲解PHP程序各种数据采集的方法,通过本章的学习,学生可以结合PHP数组实现功

能复杂的“用户注册系统”。然后按以下内容讲解:

(1)介绍浏览器端数据的提交方式

(2)详细讲解相对路径和绝对路径

(3)通过演示讲解使用FORM表单实现浏览器端的数据采集

(4)详细讲解使用$_GET和$_POST采集表单数据最后对本次课内容进行总结

授课章节:第七章PHP自定义函数课时4学时

教学目的:通过学习,学生可以了解PHP文件间相互引用的4个PHP语言结构,如何

创建和调用用户自定义函数,创建具有文件上传功能的自定义函数,重构“用户注册系

统”的代码,增强代码重用性。

教学重点:设计具有文件上传功能的自定义函数,重构“用户注册系统”的代码设计。

教学难点:static关键字以及global关键字的使用、return语言结构的使用、如何使用函

数增强代码重用性。

软件工程

教学内容:

7-1PHP文件间的引用

include_once和require_once语言结构分别对应于include和require语言结构,

使用include_once和require_once语言结构可以有效避免多次引用同一个PHP文

件而引起函数或变量的重复定义问题的发生。

include_once语言结构的语法格式:mixedinclude_once(stringresource)

include_once语言结构功能:include_once语句将一个资源文件resource

载入到当前PHP程序中。若找不到资源文件resource,include_once语句返回队

FALSE。若找到资源文件resource,且该资源文件第一次载入,include_once语句

返可整数1;若找到资源文件resource,且该资源己经载入,include_once语句返

TRUE。

7-2函数概述

1.函数的概念

程序设计中,可以将经常使用的代码段独立出来,形成单独的子程序,这些子程

序就是函数。函数只需要定义一次,之后便可以重复使用,故可以增强了代码的重

用性。一般而言,函数的功能比较单一,因此函数的编写和维护比较容易。

PHP函数种类和变量种类的划分方法相似,PHP中有三种类型的函数:内置函数、自

教定义函数和变量函数。

学内置函数类似了于预定义变举。PHP内置函数是PHP已预定义好的函数,这些函

实数在编程时无需定义,可以直接使用。

施自定义函数类似于自定义变量,由程序员根据特定需要编写出来的代码段。和内

过置函数不同,自定义函数只有在定义之后才可以使用。

程变量函数类似于可变变量,变量函数的函数名为一个变量。三种类型的函数都有

设一个共同特点:调用函数时,函数名大小写不敏感,例如:调用md5()函数和调用

计MD5()函数实质上是调用同一个函数。

7-3自定义函数

1.自定义函数的定义

在PHP中,定义自定义函数的语法格式为:

functionfunctionName($param1,$param2,$param3$paramn=defaultValue)

{函数体;

return返回值;

}

调用自定义函数时需要注意:应该先声明自定义函数,然后才可以在调用处使用如

下方式调用自定义函数:

functionName(paramlValue,param2Value,param3ValueparamnValue)

当函数的定义和函数的调用位于不同的PHP文件时,需要使用include

(include_once)或require语言结构(require_once)引用函数定义所在的PHP

文件,这个过程称为函数的声明。当函数的定义和函数的调用位于几同一个PHP文

件时,此时无须函数的声明即可直接调用自定义函数。

3.自定义函数的参数赋值

和变晕赋值方法相同,自定义函数的参数赋值有两种方法:传值赋值和传地址赋值。

(1)传值赋值

软件工程

默认情况下,自定义函数的参数是按传值赋值的方式为函数参数赋值,即将一个值

的“拷贝”赋值给函数的参数。

(2)传地址赋值

自定义函数的参数也可使用传地址赋值,即:将一个变量的“引用”传递给函数的

参数。和变量传地址赋值的方式一样,在函数的参数名前追加一个“&”

4.变量的作用域取决于变量在PHP程序的位置:

∅在函数内定义的变景(包括函数的参数)为局部变耸,局部变量在调用函数结

束后被白动回收。

∅在函数外定义的变量为全局变量,声明后的全局变量可以被PHP程序中所有语

句访问(函数内的PHP语句除外),当程序执行到程序末尾的时候,全局变量才被自

动回收。全局变最也可以应用于include语句和require语句所引用的PHP程序文

件。

如果函数中的PHP语句要访问全局变量,需要在函数内定义的变量名前加关键

字global,此时函数内局部变量变为全局变量。

5.变量的生存周期和static关键字

函数内定义的变量生存周期是短暂的:每一次函数调用的开始到这一次函数调

用的结束。有时希望函数中的变量能够从这次调用一直存活到下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论