网络应用程序设计-PHP导论(基础篇).ppt
PHP导论(基础篇),段会川山东师范大学信息科学与工程学院2006年10月,2023/11/16,2,目 录,PHP简介学习PHP的先决条件什么是PHP?PHP文件什么是MySQL?PHP+MySQL为什么要使用PHP?如何开始使用PHP?PHP的安装PHP语法PHP示例,2023/11/16,3,目 录,PHP中的注释PHP变量字符串界定符、字符串的连接、转义字符变量命名规则PHP算术运算符(arithmetic operators)PHP赋值运算符(assignment operators)PHP比较运算符(comparison operators)PHP逻辑运算符(logical operators)PHP的条件语句(conditional statement)if else举例复合语句,2023/11/16,4,目 录,elseif语句elseif示例switch语句switch语句示例数组(arrays)数字索引的数组数字索引数组示例联想式数组联想式数组示例多维数组,2023/11/16,5,目 录,循环语句(looping statements)while循环do while循环for循环for循环示例foreach循环函数创建函数创建带参数的函数带两个参数的函数带返回值的函数,2023/11/16,6,目 录,表单与用户输入接收HTML表单变量的PHP文件表单验证$_GET数组$_REQUEST数组$_POST数组为什么使用$_POST,2023/11/16,7,PHP简介,PHP是一种用来创建动态和交互式网站的强大的服务器端脚本语言(scripting language)相对于Microsoft ASP等服务器端脚本语言,PHP是一种被广泛使用的,开源的(open source)且高效的服务器端脚本语言PHP完全适合于Web开发,而且可被直接嵌入到HTML文档中PHP的语法与Perl和C非常相似PHP经常与Apache Web服务器在各种操作系统上一起使用Apache支持ISAPI,而且可以与Windows系统上的IIS一起运行,2023/11/16,8,学习PHP的先决条件,HTML/XHTML一点关于脚本语言的知识,2023/11/16,9,什么是PHP?,PHP的官方命名采用了一种很奇怪的形式”PHP:Hypertext Preprocessor”,即”PHP:超文本预处理器”.PHP的早期名字是”Personal Home Page”,即”个人主页”象ASP一样,PHP是一种服务器端脚本语言PHP脚本在服务器上执行PHP支持许多数据库系统,如:MySQL,Informix,Oracle,Sybase,Solid,PostgreSQL,Generic ODBC等等PHP是一种开源软件(Open Source Software,OSS)PHP可以免费下载和使用,2023/11/16,10,PHP文件,PHP文件中可包括文本,HTML标签和脚本语句PHP文件返回给浏览器的是纯HTML文档PHP文件的类型名可取为.php,.php3,或.phtml,2023/11/16,11,什么是MySQL?,MySQL是一种小的数据库服务器MySQL对于中小型应用是一种理想的数据库系统MySQL支持标准的SQL语言MySQL已经在许多平台上编译通过MySQL可以免费地下载和使用,2023/11/16,12,PHP+MySQL,PHP与MySQL的结合具有跨平台性你可以在Windows上进行开发而在Unix平台上运行,2023/11/16,13,为什么要使用PHP?,PHP可运行在不同的平台上,如:Windows,Linux,Unix等PHP与当前正在运行的几乎所有Web服务器,如:Apache,IIS等,兼容PHP可以从官方网站下载PHP很容易上手而且在服务器端有很高的执行效率,2023/11/16,14,如何开始使用PHP?,在Windows或Linux系统上安装Apache服务器安装PHP系统安装MySQL,2023/11/16,15,PHP的安装,下载PHP安装手册:下载MySQL数据库系统下载Apache服务器系统,2023/11/16,16,PHP语法,注意:你不能使用浏览器的”查看源代码”功能查看PHP代码,使用此功能只能看到PHP文件生成的纯HTML文档,这是因为PHP脚本程序在服务器端执行并将结果送给浏览器PHP脚本块以”结束.PHP脚本块可以放在HTML文档中的任何位置上.,2023/11/16,17,PHP示例,通常PHP文件包括一些HTML标签(象HTML文件那样)和一些PHP脚本代码下面的示例向浏览器发送”Hello World”文本(HelloWorld.php)每一个PHP语句以分号结束,PHP有两条基本的输出文本的语句:echo和print可以将一条语句写到多行上,也可以将多条语句写到一行上,2023/11/16,18,PHP中的注释,PHP使用/实现单行注释,使用/*和*/实现多行注释(注释块),2023/11/16,19,PHP变量,变量用来存储象数字,字符串,数组或函数结果等数据值,以实现这些值可以在脚本中多次使用PHP中的变量以$符号开始(Var.php),2023/11/16,20,PHP字符串界定符,PHP中的字符串可以使用单引号、双引号或定界符界定双引号中的字符串如果含有$开头的串,则PHP将试图将其解释为变量,并用变量的值替代给变量增加花括号可以将它与周围的字符区分开来定界符使用方法$txt3=EOT我早已为你种下九百九十九朵玫瑰EOT;示例(StringDelimiter.php),2023/11/16,21,字符串的连接,连接字符串使用圆点”.”符号(StringConcat.php),2023/11/16,22,字符串的连接,要使在生成的HTML网页在浏览时有断行,则需要增加关于断行的标签要使生成的HTML网页源文件中有断行,则需要使用转义字符n字符串连接运算符.不仅能连接字符串变量,也能连接数值变量示例(StringConcatA.php),2023/11/16,23,PHP的转义字符,2023/11/16,24,PHP的转义字符,2023/11/16,25,变量命名规则,变量名必须以字母或下划线”_”开始变量名只可以用字母,数字或下划线组成变量名中不能包括空格.如果一个变量名需要用多个单词构成,则单词间最好用下划线($the_red_apple)或首字母大写(驼峰标记法,camel notation)($theRedApple)变量名是大小写敏感的(case sensitive),2023/11/16,26,PHP算术运算符(arithmetic operators),2023/11/16,27,PHP赋值运算符(assignment operators),2023/11/16,28,PHP比较运算符(comparison operators),2023/11/16,29,PHP逻辑运算符(logical operators),2023/11/16,30,PHP的条件语句(conditional statement),if else语句允许在条件满足(值为true)时执行一些代码而在条件不满足(值为false)时执行另一些代码if(condition)code to be executed if condition is true;else code to be executed if condition is false;,2023/11/16,31,if else举例(IfFri.php),2023/11/16,32,复合语句,如果在if或else部分有多个语句要执行则应该使用花括号将它们括起来,这样它们就成为了逻辑上的一个语句单位,称为一个复合语句(IfFriA.php)if($d=Fri)echo Hello!;echo Have a nice weekend!;echo See you on Monday!;else echo Have a nice day!;,2023/11/16,33,elseif语句,elseif语句实现当多个条件中的每一个为真时分别执行不同的代码if(condition)code to be executed if condition is true;elseif(condition)code to be executed if condition is true;else code to be executed if condition is false;,2023/11/16,34,elseif示例(ElseIf.php),2023/11/16,35,switch语句,switch语句根据一个表达式的结果执行相应的语句块switch(expression)case label1:code to be executed if expression=label1;break;case label2:code to be executed if expression=label2;break;default:code to be executed if expression is different from both label1 and label2;,2023/11/16,36,switch语句,switch语句的执行过程计算表达式的值将计算所得的值依次与各case后的值相比较如果有一个相同者,则执行该case后的语句块语句块最后的break阻止继续执行一条case中的代码如果没有一个case的值匹配,则执行default后的语句,2023/11/16,37,switch语句示例(Switch.php),switch($x)$x=rand(1,6);case 1:echo Number 1;break;case 2:echo Number 2;break;case 3:echo Number 3;break;default:echo No number between 1 and 3;,2023/11/16,38,随机函数rand(),随机函数rand()用于产生某个范围内的整型随机数(包括范围的边界)格式int rand(int min,int max)注意PHP从4.2.0版后自动对随机数种子进行初始化,以使同一个程序的不同次执行,产生不同的随机数序列。以前版本需要调用如下函数初始化void srand(int seed)随机数非常有用,计算机自动命题、计算机游戏、计算机模拟等场合广泛地使用随机数,2023/11/16,39,数组(arrays),数组用于存储一个元素序列,以便程序可以用循环语句对这些元素进行处理数组中的每一个元素都有一个唯一的标识(ID),使用该标识可访问数组中的相应元素PHP中的数组可以分为三类数字索引的数组:以数字为ID的数组联想式(associative)数组:以字符串为ID的数组多维数组:元素为数组的数组,2023/11/16,40,数字索引的数组,下面两种方法可创建相同的数字索引数组$names=array(大象,狮子,老虎);$names0=大象;$names1=狮子;$names2=老虎;,2023/11/16,41,数字索引数组示例(ArrayNumeric.php),2023/11/16,42,联想式数组,联想式数组使用字符串作为元素的索引,这大方便了对数组元素的记忆和使用下述两种定义是等价的$ages=array(elephant=32,lion=30,tiger=34);$ageselephant=32;$ageslion=30;$agestiger=34;,2023/11/16,43,联想式数组示例(ArrayAssoc.php),2023/11/16,44,多维数组,多维数组指的是数组元素又是数组的情形,如$families=array(elephant=array(非洲大象,美洲大象,亚洲大象,),lion=array(福建石狮),tiger=array(东北虎,华南虎,孟加拉虎);示例(ArrayMulti.php),2023/11/16,45,循环语句(looping statements),循环语句用于对某个语句块执行有限的若干次,PHP提供了四种类型的循环while循环:当给定条件为true时循环执行某个语句块do while循环:先执行某个语句块,再判断条件,若条件为true,则再次执行该语句块for循环:对某个语句块循环执行指定的次数foreach循环:针对一个数组中的各元素循环执行某个语句块,2023/11/16,46,while循环,语法while(condition)code to be executed;示例(While.php)$i=1;while($i;$i+;,2023/11/16,47,do while循环,语法docode to be executed;while(condition);示例(DoWhile.php)$i=0;do$i+;echo The number is.$i.;while($i5);,2023/11/16,48,for循环,语法for(initialization;condition;increment)code to be executed;for语句有三个参数第1个参数对循环变量进行初始化第2个参数决定条件第3个参数对循环变量进行增加(或减少)第1个和第3个参数中可以包括用逗号分开的多个语句,以实现多个变量的初始化和增减,2023/11/16,49,for循环示例(For.php),;?,2023/11/16,50,foreach循环(ForEach.php),foreach循环用于实现对数组元素的遍历,语法为:foreach(array as value)code to be executed;示例$arr=array(one,two,three);foreach($arr as$value)echo Value:.$value.;,2023/11/16,51,函数,函数将一个语句块定义为一个独立的单元,并对其进行了命名,即函数名,任何时候要使用该语句块,只要引用函数名就可以了使PHP真正强大的是其函数PHP为开发者提供了700多个函数,2023/11/16,52,创建函数,函数包括函数首部和函数体函数首部以”function”开始在function后面是函数的名字,它遵循变量的命名规则在函数名后是出现在括号中的形式参数表函数体函数体以”“开始此后是语句行函数体以”结束,2023/11/16,53,创建函数,函数及其使用示例(FuncA.php),2023/11/16,54,创建带参数的函数,只有极少数的函数没有参数,绝大部分的函数都通过对输入参数的处理给出结果这才体现出函数”用不变的代码处理可变的数据”的基本思想示例(FuncP.php)function writeMyName($fname)echo$fname.“先生.;,2023/11/16,55,带两个参数的函数,两个参数的函数function writeMyName($name,$color)echo$name.是.$color.的;示例(FuncP2.php),2023/11/16,56,带返回值的函数,函数使用return语句返回结果function add($x,$y)$total=$x+$y;return$total;echo 1+16=.add(1,16)示例(FuncR.php),2023/11/16,57,表单与用户输入,将HTML表单和PHP进行结合时,最重要的是要记住HTML页上任何的表单元素变量都将”自动地”被PHP脚本所接收对如下表单(FormNA.htm)进行提交时,name和age将被传递给welcome.phpName:Age:,2023/11/16,58,接收HTML表单变量的PHP文件,如下的Welcome.php脚本将接收表单变量name和age欢迎.你已经 岁了.,2023/11/16,59,表单验证,任何要求用户输入信息的网页(通常是含有表单元素的HTML文档)都应该在可能的情况下在浏览器端进行数据有效性验证(一般使用客户端脚本,如JavaScript)浏览器端的验证速度快且能够减轻Web服务器的负担如果用户输入的数据是与数据库有关的,则许多验证需要在服务器端进行.在服务器端进行验证的较好的方法是将表单提交到它自身所属的网页文档这样用户能够在同一个网页上看到错误信息,从而大大方便错误的发现,2023/11/16,60,$_GET数组,当HTTP协议以GET命令向服务器发出请求时,PHP可以使用$_GET数组获取其传递过来的变量名及其对应的值GET命令以明码方式传送的变量及其值您将在浏览器的地址栏中看到它们GET命令所传递的信息长度被限制在100个字符以内参见前面的FormNA.htm和Welcome.php示例使用GET命令可方便对有关网页的收藏,但它对传输像口令等需要安全性的信息是不合适的,而且它不能用来传输内容量较多的数据,2023/11/16,61,$_REQUEST数组,$_REQUEST数组包含着$_GET,$_POST和$_COOKIE三个数组变量中的全部内容因此,$_REQUEST既可用于获取通过GET命令传递的数据,也能获取通过POST命令获取的数据将Welcome.php中的$_GET修改为$_REQUEST可查看$_REQUEST的使用,2023/11/16,62,$_POST数组,$_POST数组中包括HTTP使用POST命令传递的变量名和变量值将FormNA.htm和Welcome.php中的GET修改为POST可查看$_POST的使用,2023/11/16,63,为什么使用$_POST,使用HTTP的POST方法传递的数据不会在URL中显示,因而具有较好的安全性POST方法传递的数据没有长度限制但是,使用POST方法传递数据的目标网页无法收藏到浏览器的收藏夹中,2023/11/16,64,The End,