PHP程序设计习题答案 下载本文

5. 以下关于GET方式提交和POST方式提交数据说法错误的是( C )。

A: get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。

B: post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

C: get安全性非常低,post安全性较高。而且post的执行效率也比get好。

D: 在FORM提交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。

四、简答题

1. 请简要介绍GET与POST的区别?

1. get是从服务器上获取数据,post是向服务器传送数据。

2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

5. get安全性非常低,post安全性较高。但是GET执行效率却比Post方法好。

第9章 PHP会话技术

习题

一、填空题

1. 在实际开发中,注销功能是通过删除【 session 】和cookie实现的。

2. 在实际开发中,可以通过设置【cookie 】的有效期来实现用户7天免登录的功能。。 1. 执行【 session_destroy() 】函数可以同时删除session数据和文件。 3. PHP中session的设置和读取都是由超全局数组【$_SESSION[] 】来完成。。 4. 从session中获取数据,需要使用【session_start() 】函数开启session。。 二、判断题

1. 若要存储从session中获取的数据只能是数组或基本数据类型。(×) 2. PHP中session支持任意类型的数据。(×)

3. 由于$_SESSION是超全局数组,所以数组内每个元素可以对应多个session数据。(×) 4. 在PHP中,必须使用超全局数组$_SESSION[]向session添加数据。(√) 5. 在调用session_start()前不能有任何输出,包括空格和空行,否则会报错。(√) 三、选择题

1. PHP可以利用( D)配置项实现自动开启session的机制。

A: session_auto B: session_start

C: session_auto_start D: session.auto_start

2. 下列选项中不可以保存到session里的数据类型是( C )。

A: 字符串 B: 数组 C: 对象 D: 布尔类型

3. 下列选项中(A)是将数据存储在浏览器端的会话技术,并以此来跟踪和识别用户。

A: Cookie B: Session C: Request D: A和B

4. 用户第一次访问服务器时,服务器会在响应消息中增加( C)头字段,并将信息发送给浏览

器。

A: SetCookie B: Cookie C: Set-Cookie D: 以上答案都不对 5. 在PHP程序开发中,通过(A )函数创建Cookie。

A: setcookie() B: set_cookie() C: cookie() D: 以上答案都不对

四、简答题

1. 在项目开发中,经常使用isset()函数和empty()函数来判断变量,请简述他们的区别。 isset()判断一个变量是否已经被设置并且不为null,如果是则返回true,否则返回false。

empty()判断一个变量, 非空非零返回 false。否则返回true。''、0、'0'、null、false、array()、以及没有任何属性的对象都被认为是空的。

第10章 正则表达式

习题

一、填空题

1. 正则表达式的英文简称为【 RegExp 】。

1. 【 PCRE 】是兼容Perl正则表达式的一套正则引擎。 2. 在正则表达式中,选择字符“|”可以理解为【 或 】。 3. 反义字符类,应该在字符类内部添加【 “^” 】前缀。

2. 在PHP中,使用正则表达式对数组中的元素进行匹配可以用【 preg_grep() 】函数。 二、判断题

1. 正则表达式是一种描述字符串结构的语法规则。(√)

2. PHP的正则表达式支持POSIX规则,但不支持PCRE规则。 (×) 3. 在正则表达式中,定位符“^”和“$”用于描述单词的边界。 (×) 4. 在正则表达式中,“\\B”用于匹配单词边界,“\\b”用于匹配非单词边界。 (×) 5. 在正则表达式中,一个方括号“[]”可以匹配一个单词。 (×) 三、选择题

1. 下列正则表达式选项中,可以匹配字符串“it\\c\\ast”的选项是( B )。

A: it\\c\\ast B: it\\\\c\\\\ast C: it?c?ast

D: it*c*ast

2. 在正则表达式中,下列选项哪些不是反斜线“\\”的作用(D )。

A: 作为转义符使用 B: 定义一些限定符 C: 指定预定义字符集 D: 改变限定符的作用范围 3. 下列正则表达式选项中,可以匹配字符串“itcast”的选项有( D )。

A: \\w- B: \\W+ C: \\s+ D: \\S+ 4. 下列选项中,可以被正则表达式“(go)+gle”匹配的字符串有( B )。 A: google B: gogle C: goglogle D: gle

5. 在正则表达式中,下列选项哪些是括号字符“()”的作用(B )。

A: 定义限定符 B: 分组 C: 固定限定符的作用范围 D: 表示字符范围

四、简答题

1. 请简述什么是XSS攻击。

xss攻击全称是:Cross Site Script 跨站脚本攻击

恶意攻击者往Web页面里插入恶意HTML和JavaScript代码,当用户浏览该页面之时,嵌入其中的HTML和JavaScript代码会被执行,从而达到恶意攻击用户的特殊目的。

第11章 文件操作

习题

一、填空题

1. 【 r 】模式是以只读方式打开文件,将文件指针指向文件头。 2. 【 r+ 】模式是以读写方式打开文件,将文件指针指向文件头。

3. 【 a 】写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 4. 【 file_put_contents() 】函数不需要使用fopen()函数打开文件就可以对文件进行写入操作。。 5. file_put_contents()函数要实现追加写入,需要设置可选参数值为【FILE_APPEND 】。 二、判断题

1. 文件在程序中是以流的形式来操作的。(√)

2. 流是指数据在数据源(文件)和程序(内存)之间经历的路径。(√) 3. 输出流是指数据从数据源(文件)到程序(内存)的路径。(×) 4. 文件流中的输入输出都是相对于文件而言的。 (×) 5. 在Linux系统中路径分隔符使用的是正斜线“/”。(√) 三、选择题

1. PHP中获取文件类型的函数是( C)。

A: fileinfo() B: filesystem() C: filetype() D: fileowner()

2. PHP中用于判断文件是否存在的函数是(B )。

A: fileinfo() B: file_exists() C: fileperms() D: filesize()

3. fileatime()函数能够获取文件的哪个属性?( B ) 。

A: 文件的修改时间 B: 文件的上次访问时间 C: 文件的创建时间 D: 文件大小

4. 要获取文件的统计信息,可以使用下面的哪个函数?( B )。

A: fileinode() B: stat() C: filetype() D: fileowner()

5. 以下关于文件的ctime属性说法正确的是( D )。

A: 在windows下修改文件名会改变ctime属性值 B: 在linux下修改文件权限不会改变ctime属性值 C: 在linux下修改文件内容不会改变ctime属性值 D: 在linux下修改文件路径会改变ctime属性值

四、简答题

1. 文件在程序中是以流的形式来操作的。流是指数据在数据源和程序之间的经历的路径。请阐

述文件流在HTTP协议传输中扮演什么角色?

所谓文件流,是指在通过HTTP协议POST或GET数据的过程中,传输一方直接以二进制流的方式传送某个文件的内容,这样就形成了一条文件流,接收方只要将接受的流内容直接写进文件即可。流根据数据的传输方向可分为输入流和输出流。输入流是指数据从数据源到程序的路径,输出流是指数据从程序到数据源的路径。