php考试要点.docx
《php考试要点.docx》由会员分享,可在线阅读,更多相关《php考试要点.docx(36页珍藏版)》请在冰豆网上搜索。
php考试要点
第四章
注册码的使用
常用的数组及相关字符串的函数的使用
第2章
表单的标记
表单标记
在HTML语言中,表单内容用
(1)name:
指定表单的名称。
命名表单后可以使用脚本语言来引用或控制该表单。
(2)Id:
指定表示该标记的唯一标志码。
(3)method:
指定表单数据传输到服务器的方法,取值是post或get。
post表示在HTTP请求中嵌入表单数据;get表示将表单数据附加到请求该页的URL中。
例如,某表单提交一个文本数据id值至page.php页面。
如果以post方法提交,新页面的URL为“http:
//localhost/page.php”,而若以get方式提交相同表单,则新页面的URL为“http:
//localhost/page.php?
id=...”。
(3)action:
指定接收表单数据的服务器端程序或动态网页的URL地址。
当提交表单之后,即运行该URL地址所指向的页面。
(4)target:
指定目标窗口。
target属性取值有_blank、_parent、_self和_top,分别表示:
在未命名的新窗口中打开目标文档;
在显示当前文档的窗口的父窗口打开目标文档;
在提交表单所使用的窗口打开目标文档;
在当前窗口打开目标文档。
(5)
onsubmit。
提交表单时调用的事件处理程序。
onreset。
重置表单时调用的事件处理程序。
设计制作一个表单:
表单输入控件标记
表单输入控件的格式如下:
为了让用户通过表单输入数据,在表单中可以使用标记来创建各种输入型表单控件。
表单控件通过标记的type属性设置成不同的类型,包括单行文本框、密码框、复选框、单选框、文件域和按钮等。
(1)单行文本框
在表单中添加单行文本框可以获取站点访问者提供的一行信息,格式如下:
(2)密码框
密码框也是一个文本框,当访问者输入数据时,大部分浏览器会以星号显示密码,使别人无法看到输入内容,格式如下:
其中,属性、方法和事件与单行文本框基本相同,只是密码框没有onclick事件。
(3)隐藏域
表单中添加隐藏域是为了使访问者看不到隐藏域的信息。
每个隐藏域都有自己的名称和值。
当提交表单时,隐藏域的名称和值就会与可见表单域的名称和值一起包含在表单的结果中。
格式如下:
隐藏域的属性、方法和事件与单行文本框的设置基本相同,只是没有defaultvalue属性。
(4)复选框
在表单中添加复选框是为了让站点访问者选择一个或多个选项,格式如下:
选项文本
checked。
如果设置该属性,则第一次打开表单时该复选框处于选中状态。
被选中则值为TRUE,否则为FALSE。
defaultchecked。
判断复选框是否定义了checked属性,若已定义则defaultchecked值为TRUE,否则为FALSE。
(5)单选按钮
在表单中添加单选按钮是为了让站点访问者从一组选项中选择其中一个选项。
在一组单选按钮中,一次只能选择一个。
单选按钮的方法和事件与复选框相同。
当提交表单时,该单选按钮组名称和所选取的单选按钮指定值都会包含在表单结果中。
(6)按钮
使用标记可以在表单中添加3种类型的按钮:
“提交”按钮、“重置”按钮和“自定义”按钮,格式如下:
根据type值的不同,按钮的类型也不一样:
①type=submit。
创建一个“提交”按钮。
单击该按钮,表单数据(包括提交按钮的名称和值)会以ASCII文本形式传送到由表单的action属性指定的表单处理程序中。
一般来说,一个表单必须有一个提交按钮。
②type=reset。
创建一个“重置”按钮。
单击该按钮,将删除任何已经输入到表单中的文本并清除任何选择。
如果表单中有默认文本或选项,将会恢复这些值。
③type=button。
创建一个“自定义”按钮。
在表单中添加自定义按钮时,必须为该按钮编写脚本以使按钮执行某种指定的操作。
按钮的其他属性还有name(按钮的名称),value(显示在按钮上的标题文本)。
事件oncilck的值是单击按钮后执行的脚本代码。
(7)文件域
文件域由一个文本框和一个“浏览”按钮组成,用户可以在文本框中直接输入文件的路径和文件名,或单击【浏览】按钮从磁盘上查找、选择所需文件。
文件域的属性有name(文件域的名称)、value(初始文件名)和size(文件名输入框的宽度)。
第3章
常用的数据类型
(1)整型
整型变量的值是整数。
整型值可以用十进制数、八进制数或十六进制数的标志符号指定,前面再加上可选符号(或+)。
八进制数符号指定,数字前必须加0;十六进制数符号指定,数字前必须加0x。
(2)浮点型
浮点类型也称浮点数、双精度数或实数,浮点数的字长与平台相关,最大值是1.8e308,并具有14位十进制数的精度。
(3)字符串
ò1.单引号
定义字符串最简单的方法是用单引号“'”括起来。
如果要在字符串中表示单引号,则需要用转义符“\”将单引号转义之后才能输出。
和其他语言一样,如果在单引号之前或字符串结尾处出现一个反斜线“\”,就要使用两个反斜线来表示。
例如:
php
echo'输出\'单引号';//输出:
输出'单引号
echo'反斜线\\';//输出:
反斜线\
?
>
另外一个需要注意的问题是单引号和双引号嵌套的问题,这在之前已经介绍过。
ò2.双引号
使用双引号“"”将字符串括起来同样可以定义字符串。
如果要在定义的字符串中表示双引号,则同样需要用转义符转义。
另外,还有一些特殊字符的转义序列。
在使用PHP输出HTML时,最容易出错的地方就是单引号和双引号的嵌套。
例如,如下代码是错误的:
echo'大标题
echo"这是5号字体";
解决这个问题的一种方法是正确使用嵌套方式(见前面的正确代码),另一种方法是使用转义字符“\”将嵌套的引号转义。
例如,上面的错误代码可以修正为:
当然,还可以将HTML代码嵌入PHP标记之间来输出HTML
ò3.定界符
另一种定义字符串的方法是使用定界符“<<<”。
使用时,应该在“<<<”之后提供一个标志符,然后是字符串,最后用同样的标志符结束字符串。
结束标志符必须从行的第一列开始,标志符必须遵循PHP中标记的命名规则:
只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始
(4)布尔值
布尔型是最简单的一种数据类型,其值可以是TRUE(真)或FALSE(假),这两个关键字不区分大小写。
要想定义布尔变量,只需将其值指定为TRUE或FALSE。
布尔型变量通常用于流程控制
(5)数组和对象
数组是一组由相同数据类型元素组成的一个有序映射。
在PHP中,映射是一种把values(值)映射到keys(键名)的类型。
数组通过array()函数定义,其值使用“key->value”的方式设置,多个值通过逗号分隔。
当然也可以不使用键名,默认是1,2,3,…。
单引号、双引号的区别
使用双引号和单引号的主要区别是,单引号定义的字符串中出现的变量和转义序列不会被变量的值替代,而双引号中使用的变量名在显示时会显示变量的值。
(额外补充:
字符串的连接:
使用字符串连接符“.”可以将几个文本连接成一个字符串,前面已经用过。
通常使用echo命令向浏览器输出内容时使用这个连接符可以避免编写多个echo命令。
)
变量和常量的使用以及相关的函数,如:
isset()、unset()、define()等。
说明:
rand函数的作用是产生并返回一个随机整数,语法格式如下:
intrand([int$min],[int$max]);
常量分为自定义常量和预定义常量。
1.自定义常量
自定义常量使用define()函数来定义,语法格式如下:
define("常量名","常量值");
常量一旦定义,就不能再改变或取消定义,而且值只能是标量,数据类型只能是boolean、integer、float或string。
和变量不同,常量定义时不需要加“$”。
2.预定义常量
预定义常量也称魔术常量,PHP提供了大量的预定义常量。
但是很多常量是由不同的扩展库定义的,只有加载这些扩展库后才能使用。
预定义常量使用方法和常量相同,但是它的值会根据情况的不同而不同,经常使用的预定义常量有5个,这些特殊的常量是不区分大小写的,如表3.3所示。
检查变量是否存在
前面使用过isset()函数,它的作用是检查变量是否存在,语法格式如下:
boolisset(mixed$var[,mixed$var[,$...]])
当变量$var已经存在,该函数将返回TRUE,否则返回FALSE。
$var1="";
$var2=123;
var_dump(isset($var1));//返回bool(TRUE)
var_dump(isset($var2));//返回bool(TRUE)
另外,unset()函数释放一个变量。
empty()函数检查一个变量是否为空或零值,如果变量值是非空或非零值,则empty()返回FALSE,否则返回TRUE。
换句话说,""、0、"0"、NULL、FALSE、array()、var$var,以及没有任何属性的对象都将被认为是空的。
$var=0;
if(empty($var))
echo"变量为空";//输出"变量为空"
全局变量的使用
1.服务器变量$_SERVER
服务器变量是由Web服务器创建的数组,其内容包括头信息、路径、脚本位置等信息。
不同的Web服务器提供的信息也不同,本书以Apache服务器提供的信息为例。
表3.2列出了一些常用的服务器变量及其作用,使用phpinfo()函数可以查看到这些变量信息。
PHP还可以直接使用数组的参数名来定义超全局变量,例如“$_SERVER["PHP_SELF "]”可以直接使用$PHP_SELF变量来代替,但该功能默认是关闭的,打开它的方法是,修改php.ini配置文件中“register_globals=Off”所在行,将“Off”改为“On”。
但是全局系统变量的数量非常多,这样可能导致自定义变量与超全局变量重名,从而发生混乱,所以不建议开启这项功能。
2.环境变量$_ENV
环境变量记录与PHP所运行系统相关的信息,如系统名、系统路径等。
单独访问环境变量可以通过“$_ENV['成员变量名']”方式来实现。
成员变量名包括ALLUSERSPROFILE、CommonProgramFiles、COMPUTERNAME、ComSpec、FP_NO_HOST_CHECK、NUMBER_OF_PROCESSORS、OS、Path、PATHEXT、PHPRC、PROCESSOR_ARCHITECTURE、PROCESSOR_IDENTIFIER、PROCESSOR_LEVEL、PROCESSOR_REVISION、ProgramFiles、SystemDrive、SystemRoot、TEMP、TMP、USERPROFILE、windir、AP_PARENT_PID等。
如果PHP是测试版本,使用环境变量时可能会出现找不到环境变量的问题。
解决办法是,打开php.ini配置文件,找到“variables_order="GPCS"”所在的行,将该行改成“variables_order="EGPCS"”,然后保存,并重启Apache。
3.GLOBAL变量$GLOBALS
$GLOBALS变量以数组形式记录所有已经定义的全局变量。
通过“$GOLBAL["变量名"]”的方法来引用全局变量。
由于$GLOBALS超全局变量可以在程序的任意地方使用,所以它比使用“global”引用全局变量更方便。
$a=1;
$b=2;
functionSum()//创建Sum()函数
$GLOBALS['b']=$GLOBALS['a']+$GLOBALS['b'];//运算全局变量$b的值
}
Sum();
echo$b;//输出结果为3
另外,PHP的预定义变量还有:
$_COOKIE。
它是由HTTPCookies传递的变量组成的数组。
$_GET。
它是由HTTPget方法传递的变量组成的数组。
$_POST。
它是由HTTPpost方法传递的变量组成的数组。
$_FILES。
它是由HTTPpost方法传递的已上传文件项目组成的数组。
$_REQUEST。
它是所有用户输入的变量数组,包括$_GET、$_POST、$_COOKIE所包含的输入内容。
$_SESSION。
它是包含当前脚本中会话变量的数组。
给出一个表达式能够计算出结果
流程控制语句的使用,能够编写相关的程序代码
第4章
数组的使用
数组的创建和初始化
创建数组一般有以下几种方法。
1.使用array()函数创建数组
PHP中的数组可以是一维数组,也可以是多维数组。
创建数组可以使用array()函数,语法格式如下:
arrayarray([$keys=>
]$values,…)
语法“$keys=>$values”,用逗号分开,定义了关键字的键名和值,自定义键名可以是字符串或数字。
如果省略了键名,会自动产生从0开始的整数作为键名。
如果只对某个给出的值没有指定键名,则取该值前面最大的整数键名加1后的值。
打印函数print_r()。
这个函数用于打印一个变量的信息。
如果给出的是字符串、整型或浮点型的变量,将打印变量值本身。
如果给出的是数组类型的变量,将会按照一定格式显示键名和值,对象类型与数组类似。
注意:
如果定义了两个完全一样的键名,则后面一个会覆盖前一个。
数组创建完后,要使用数组中某个值,可以使用$array["键名"]的形式。
如果数组的键名是自动分配的,则默认情况下0元素是数组的第一个元素。
另外,通过对array()函数的嵌套使用,还可以创建多维数组。
数组创建之后,可以使用count()和sizeof()函数获得数组元素的个数,参数是要进行计数的数组。
2.使用变量建立数组
通过使用compact()函数,可以把一个或多个变量,甚至数组,建立成数组元素,这些数组元素的键名就是变量的变量名,值是变量的值。
与compact()函数相对应的是extract()函数,作用是将数组中的单元转化为变量。
$array=array("key1"=>1,"key2"=>2,"key3"=>3);
extract($array);
echo"$key1$key2$key3";//输出123
3.使用两个数组创建一个数组
使用array_combine()函数可以使用两个数组创建另外一个数组,语法格式如下:
arrayarray_combine(array$keys,array$values)
array_combine()函数用来自$keys数组的值作为键名,来自$values数组的值作为相应的值,最后返回一个新的数组
4.建立指定范围的数组
使用range()函数可以自动建立一个值在指定范围的数组,语法格式如下:
arrayrange(mixed$low,mixed$high[,number$step])
$low为数组开始元素的值,$high为数组结束元素的值。
如果$low>$high,则序列将从$high到$low。
$step是单元之间的步进值,$step应该为正值,如果未指定则默认为1。
range()函数将返回一个数组,数组元素的值就是从$low到$high之间的值。
5.自动建立数组
数组还可以不用预先初始化或创建,在第一次使用它的时候,数组就已经创建,例如:
$arr[0]="a";
$arr[1]="b";
$arr[2]="c";
print_r($arr);//输出:
Array([0]=>a[1]=>b[2]=>c)
数组的键的使用
(1)检查数组中是否存在某个键名和值可以使用array_key_exists()和in_array()函数,array_key_exists()和in_array()函数都为布尔型,存在则返回TRUE,不存在则返回FASLE。
(2)array_search()函数也可以用于检查数组中的值是否存在,与in_array()函数不同的是:
in_array()函数返回的是TRUE或FALSE,而array_search()函数当值存在时返回这个值的键名,若值不存在则返回NULL。
(3)key()函数。
使用key()函数可以取得数组当前单元的键名,例如:
$array=array("a"=>1,"b"=>2,"c"=>3,"d"=>4);
echokey($array);//输出"a"
next($array);//将数组中的内部指针向前移动一位
echokey($array);//输出"b"
另外,“end($array);”表示将数组中的内部指针指向最后一个单元;“reset($array);”表示将数组中的内部指针指向第一个单元,即重置数组的指针;“each($array)”表示返回当前的键名和值,并将数组指针向下移动一位,这个函数非常适合在数组遍历时使用。
(4)list()函数。
使用list()函数可以将数组中的值赋给指定的变量。
这样就可以将数组中的值显示出来了,这个函数在数组遍历的时候将非常有用。
$arr=array("红色","蓝色","白色");
list($red,$blue,$white)=$arr;//将数组$arr中的值赋给3个变量
echo$red;//输出"红色"
echo$blue;//输出"蓝色"
echo$white;//输出"白色"
13_18
给出一个要求,能写出相关的正则表达式
以下是几个简单的正则表达式的例子:
'[A-Za-z0-9]':
表示所有的大写字母、小写字母及0到9的数字。
'^hello':
表示以hello开始的字符串。
'world$':
表示以world结尾的字符串。
'.at':
表示以除"\n"外的任意单个字符开头并以"at"结尾的字符串,如"cat"、"nat"等。
'^[a-zA-Z]':
表示一个以字母开头的字符串。
'hi{2}':
表示字母h后跟着两个i即hii。
'(go)+':
表示至少含有一个'go'字符串的字符串,如'gogo'。
掌握了一些简单的正则表达式的写法,就可以进一步组合成更复杂的正则表达式。
例如,身份证号码一般由18位数字或17位数字后面加一个X或Y字母组成,要匹配身份证号码,表达式可以写作:
^[0-9]{17}([0-9]|X|Y)$
其中,^[0-9]{17}表示以17个数字开头,[0-9XY]$表示以一个数字或字母X或Y结尾,组合起来就成为了身份证号码的规则。
又如,要匹配Email地址的正则表达式可以写作:
^[a-zA-Z0-9\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$
其中,子表达式'^[a-zA-Z0-9\-]+'表示至少由一个字母、数字、下划线、连字符为开始的字符串,由于连字符'-'是特殊符号,所以必须使用'\'对其转义。
符号@匹配Email地址中的@符号。
子表达式'[a-zA-Z0-9\-]+'用于匹配主机的域名,一般由字母、数字和连字符组成。
'\.'匹配点号(.),由于点是特殊字符,所以也需要使用转义字符进行转义。
子表达式'[a-zA-Z0-9\-\.]+$'用于匹配域名的剩余部分,由字母、数字、连字符构成,如果需要还可以包含更多的点号。
当然以上的表达式并不能排除所有无效的Email地址,还可以进一步改进。
文件的上传和下载
1.文件上传
$_FILES是一个二维数组,上传后的文件信息可以使用以下形式获取:
$FILES['file']['name']。
客户端上传的原文件名。
其中,“file”是HTML表单中文件域控件的名称。
$FILES['file']['type']。
上传文件的类型,需要浏览器提供该信息的支持。
常用的值有:
“text/plain”表示普通文本文件;
“image/gif”表示GIF图片;
“image/pjpeg”表示JPEG图片;
“application/msword”表示word文件;
“text/html”表示html格式的文件;
“application/pdf”表示PDF格式文件;
“audio/mpeg”表示mp3格式的音频文件;
“application/x-zip-compressed表示ZIP格式的压缩文件;
“application/octet-stream”表示二进制流文件,如EXE文件、RAR文件、视频文件等。
$FILES['file']['tmp_name']。
文件被上传后在服务端储存的临时文件名。
$FILES['file']['size']。
已上传文件的大小,单位为字节。
$FILES['file']['error']。
错误信息代码。
值为0表示没有错误发生,文件上传成功。
值为1表示上传的文件超过了php.ini文件中upload_max_filesize选项限制的值。
值为2表示上传文件的大小超过了HTML表单中规定的最大值。
值为3表示文件只有部分被上传。
值为4表示没有文件被上传。
值为5表示上传文件大小为0。
文件上传结束后,默认地存储在临时目录中,这时必须将其从临时目录中删除或移动到其他地方。
不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。
所以在删除之前要使用PHP的move_uploaded_file()函数将它移动到其他位置,此时,才完成了上传文件过程。
move_uploaded_file()函数语法格式如下:
boolmove_uploaded_file(string$filename
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1