《php试题及复习资料.docx》由会员分享,可在线阅读,更多相关《php试题及复习资料.docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、php试题及答案问题1 考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串 php?$alpha = abcdefghijklmnopqrstuvwxyz;$letters = array(15, 7, 15);foreach($letters as $val) /* 这里应该参加什么 */Aecho chr($val);Becho asc($val);Cecho substr($alpha, $val, 2);Decho $alpha$val;Eecho $alpha$val+12 以下哪一项不能把字符串$s1 和$s2 组成一个字符串?A$s1 + $s2B$s1$s2C$s1.$s
2、2Dimplode(, array($s1,$s2)E以上都可以3 变 量 $email 的 值 是 字 符 串 , 以 下 哪 项 能 把 字 符 串 转 化 成example ?Asubstr($email, strpos($email, “);Bstrstr($email, “);Cstrchr($email, “);Dsubstr($email, strpos($email, “)+1);Estrrpos($email, “);4 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创立的数组?Astrstr()B不可能只调用一次就完成Cext
3、ract()Dexplode()Estrtok()5 要比拟两个字符串,以下那种方法最万能?A用 strpos 函数B用=操作符C用 strcasecmp()D用 strcmp()6 以下哪个 PCRE 正那么表达式能匹配字符串 php|architect?A.*B|Cd3|d8Daz3|az9Ea-za-za-z|w97 以下哪些函数能用来验证字符串的完整性?三选Amd5()Bsha1()Cstr_rot13()Dcrypt()Ecrc32()8 哪个 PHP 函数及以下脚本在 UNIX 系统下执行的效果近似?function my_funct ($)$f = ($);return expl
4、ode (n, $f);Afopen()Bfread()Cflock()Dsplit_string()Efile()9 基于指定的式样pattern把一个字符串分隔开并放入数组,以下哪些函数能做到?双选Apreg_split()Bereg()Cstr_split()Dexplode()Echop()10以下脚本输出什么?echo Testing . 1 + 2 . 45;ATesting 1245BTesting 345CTesting 1+245D245E什么都没有11以下脚本输出什么?$s = 12345;$s$s1 = 2;echo $s;A12345B12245C22345D11345
5、EArray12方框中的正那么表达式能及以下哪些选项匹配?双选/.*123d/A*123B*_1234C*1234D_*1234E_*12313以下哪个比拟将返回 true?双选A1top = 1Btop = 0Ctop = 0Da = aE123 = 12314如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?A解释器输出一个类型错误B字符串将被转换成数字,再及整型数字相加C字符串将被丢弃,只保存整型数字D字符串和整型数字将连接成一个新字符串E整形数字将被丢弃,而保存字符串15考虑如下脚本。假设 能被访问,脚本将输出什么?$s = ();strip_tags ($s, array (
6、p);echo count ($s);A 的主页的字符数B剔除标签后的 主页的字符数C1D0E剔除以外的标签后的 主页的字符数16哪个函数能不区分大小写得对两个字符串进展二进制比对?Astrcmp()Bstricmp()Cstrcasecmp()Dstristr()E以上都不能17以下哪些函数能把字符串里存储的二进制数据转化成十六进制?双选Aencode_hex()Bpack()Chex2bin()Dbin2hex()Eprintf()18哪个函数能用来确保一个字符串的字符数总是大于一个指定值?答案:_19以下脚本输出什么?$a = able osts indy;echo wordwrap (
7、$a, 1, c, false);答案:_20以下脚本输出什么?$x = apple;echo substr_replace ($x, x, 1, 2);AxBaxleCaxxleDapplexExapple答案1 substr 函数能够胜任,但考虑到输出三个字母就需要三次调用该函数,所以排除此方法。那么$alpha$val和$alpha$val+1是仅有的两个可能输出题目要求的字符串的选项。因为 0 是数组的第一个索引,所以答案是 D。2 除了 A 以外的选项都能输出题目要求的字符串。PHP 中,加号+不能把两个字符串合并成一个。3 substr 函数返回字符串的一局部,而 strpos 函
8、数擅长从一个字符串中找出某个指定的子串。同时使用这两个函数将满足题目要求。注意,前一个函数从 0 开场索引,而后者不是,因此需要+1。答案是 D。4 答案是 D。explode 函数使用一个字符串分隔另一个字符串,并把结果放入一个新建的数组。strtok 函数也可以做同样的事,但需要屡次调用。5 答案是 D。strcmp()提供了平安的字符串比拟机制。注意,选项 C 是错的,strcasecmp()不是一个“万能函数,因为它不区分大小写。6 选项中没有一个正那么表达式能真正代表题目所给字符串的匹配方式,但是选项 A 和 E仍然能勉强匹配。选项 A 太普通了,它能够匹配任何字符串,因此答案是 E
9、。7 正确答案是 A,B 和 E。用 crypt()和 str_rot13()来验证一个字符串是否被改变,效率很低。crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。8 file 函数将文件的文本内容读入一个数组,每个元素是一行。因此答案 E 正确。也许你想知道为什么要把这样一个题目放在讲字符串的章节中,那是为了提醒你每一章的题目所包含的知识点并不是绝对严格区分开的,正如写 PHP 脚本时,file 函数不能脱离字符串函数单独存在一样。9 尽管条件不同,但 preg_split 和 explode 函数都能满足题目要求。ereg()拿一个正那么表达式匹配一个字符串;
10、str_split()按固定长度分隔字符串;而 chop()那么是 rtrim()别名,用来移除字符串末尾处的空格。10此题考察你对字符串操作及操作符优先级的认识。连接运算符.的优先级比加号+高。因此 PHP 解释器实际执行的运算可以表示为(Testing . 1) + (2 . 45)。由于字符串test 1 不是数字,所以加号前面的运算等于 0。加号后面的运算等于 245,PHP 输出的结果是 0+245,等于 245,所以答案是 D。11可以用访问数组元素的方式访问字符串中的字符,因此脚本只是把字符串中的第二个字符$s1替换成了字符 2,最终将输出 12245。答案是 B。12此题的要点
11、是理解这个正那么表达式的含义从左往右,首先是零个或多个任意字符.*,跟着是一个星号*,然后是 123,最后是一个数字。因此答案是 C 和 D。13B 和 E 正确。选项 B 中,在比拟时,字符串 top 等同于数字 0。=操作符不比对数据类型,所以将返回 true。答案 E 中,字符串 123 等同于数字 123,比拟将返回 true。14字符串将被转换成数字如果无法发生转换就是 0,然后及整型数字相加。答案是 B。15代码的本意是剔除 主页上除了 p 以外的的所有 HTML 标签。可实际上,在代码的最后一行使用了 count 函数,它统计变量中的元素数量,而不是字符串中的字符数。由于字符串是
12、标量,对字符串使用 count 函数将永远返回 1。答案是 C。16题目其实就是在描述 strcasecmp 函数的作用,因此答案是 C。17正确答案是 B 和 D。pack 函数能对二进制数据进展复杂的格式化,包括将字符串中的字符转化成十六进制表示。bin2hex 函数也有同样的转化功能。注意,printf()能将整数转化成十六进制数,但无法转化字符串。18这是在说 str_pad 函数,它可以把字符串填充到指定长度。19脚本将输出 ablecostscindy。wordwrap 函数通常用来把字符串切割成指定长度。然而在此题中,长度被设置为 1,因此函数将从空格处切割第四个参数被设置为 f
13、alse,因此函数不会从单词的中间进展切割。填充字符串是 c,等于把每个空格都换成了 c。20substr_replace 函数是用一个指定字符串替换原字符串中的某个局部,因此脚本输出axle,答案是 B。文件操作你可能觉得PHP的文件操作功能并不怎样,但实际上它对开发者来说非常有用。即使你是做网站开发的,学会相关技能也能让你如虎添翼。多亏了流包装器stream wrappers,将在第十章详细介绍,PHP才能够翻开并读取远程文件,让在本地使用第三方网站的内容变得可能。站在更底层的角度,文件输入/输出能完成多种任务。可以用他读取预制文件的内容,比方第三方提供的内容;或者通过PHP脚本让浏览器翻
14、开一个二进制文件,使得你能更切实的控制它。无论如何,本章不仅考验你翻开、关闭和读取文件的能力,还考察多进程下进展文件操作的根底知识例如文件锁。php面试题及答案,经典php笔试题及答案1 函数_能读取文本文件中的一行。读取二进制文件或者其他文件时,应当使用_函数。Afgets(), fseek()Bfread(), fgets()Cfputs(), fgets()Dfgets(), fread()Efread(), fseek()2 文件指针能在PHP脚本完毕时自动关闭,但你也可以用_函数来关闭。答案:_3 考虑如下PHP脚本,它一行一行的读取并显示某文本文件的内容。在问号处填入什么才能使脚本
15、正常运作?$file = fopen(test, r);while(!feof($file) echo ?;fclose($file);A($file)Bfile($file)Cread_file($file)Dfgets($file)Efread($file)4 以下哪种方法能保证锁在任何竞争情况下都平安?A用flock()锁住指定文件B用fopen()在系统的临时文件夹里翻开文件C用tempnam()创立一个临时文件D用mkdir()创立一个文件夹来当E用tmpfile()创立一个临时文件5以下哪个函数能够获得文件的全部内容,并能够用在表达式中?双选A()Bfgets()Cfopen()D
16、file()Ereadfile()6 在不把文件内容预加载到变量中的前提下,如何解析一个以特殊格式格式化过的多行文件?A用file()函数把它分割放入数组B用sscanf()C用fscanf()D用fgets()E用fnmatch()7考虑如下脚本,最后文件my的内容是什么?$array = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ;$f = fopen (my, r);for ($i = 0; $i 50; $i+) fwrite ($f, $arrayrand(0, strlen ($array) - 1);A什么都没有,因为$array实际上是一个字符串,
17、而不是数组B49个随机字符C50个随机字符D41个随机字符E什么都没有,或者文件不存在,脚本输出一个错误8函数delete是做什么的?A删除文件B删除文件夹C释放变量D移除数据库记录E没有这个函数!9考虑如下脚本,哪个PHP函数和它的功能最接近?function my_funct ($, $data)$f = fopen ($, w);fwrite ($f, $data);fclose ($f);A()B()C没有这样的函数Dfile()Efputs()10如果你的脚本无法正确识别一个存储于另一个平台上的文件的行结尾,你该怎么办?A改变auto_detect_line_ending的设置B用正
18、那么表达式侦测行的最后一个字母C用fpos()D用ftok()E每次读取一个字符11如果想要可读可写得翻开一个文件,该给fopen()传什么参数?双选AwBrCaD+12能够读写常规文件中的二进制数据的函数是_,该函数返回的资源能被fgets()使用。答案:_13以下哪些函数能读取文件的全部内容?三选Afgets()B()Cfread()Dreadfile()Efile()14哪个函数能够往文本文件中写入一个字符串?答案:_15考虑如下脚本。运行时,尽管文件test.txt已经被用unlink()函数删除,脚本仍然输出1,1。在脚本的最后添加什么函数才能解决这个问题?$f = fopen (t
19、est.txt, w);fwrite ($f, test);fclose ($f);echo (int) (test.txt) . , ;unlink (c:test.txt);echo (int) (test.txt);Aclearstatcache()Bfflush()Cob_flush()Dtouch()E以上都不对16函数_能判断一个文件是否可写。答案:_17以下哪个选项能将文件指针移到开头?Areset()Bfseek(-1)Cfseek(0, SEEK_END)Dfseek(0, SEEK_SET)Efseek(0, SEEK_CUR)18stat()和fstat()有什么区别?A
20、stat()基于文件指针工作,fstat()基于路径工作Bfstat()基于文件指针工作,stat()基于路径工作Cfstat()不能处理文件Dstat()不能处理文件Efstat()是stat()的别名19以下哪个选项准确的描述出了方框中的脚本的作用?echo number_format (disk_free_space (c:) /disk_total_space(c:) * 100, 2) . %;A计算Windows系统C盘的剩余磁盘空间大小B输出一个表示C盘剩余空间所占比例的两位小数C输出C盘剩余容量的byte数D计算C盘总容量及剩余空间的比率E以上都不对20假设image.jpg存
21、在并能够被PHP读取,调用以下脚本时,浏览器上显示什么?header (Content-type: image/jpeg);readfile (image.jpg);A一张JPEG图片B一个二进制文件C下载一个二进制文件D下载一张JPEG图片E一张残破的图片答案1 fgets函数主要用来从文本文件中读取一行,当然你也可以指定每次读取的最大长度。fread函数主要用来读取二进制数据。答案是D。2 函数fclose能关闭文件指针。3 fgets函数能从文件中读取单独一行。因此答案是D。4 正确答案是D。这题很难,而且在实践中不大可能会碰到这样的问题但这不正是你读这本书的原因吗?!你必须记住,flo
22、ck()使用一种“协议锁定机制,即所有其他访问此文件的进程也必须要使用flock()。如果某个进程没有这么做,竞争就会产生,锁就不平安。用mkdir创立一个文件夹能保证任何时刻只有一个进程处理能处理某文件,即保证操作的原子性。因此,你可以创立一个临时文件夹并“护住它,直到I/O操作完成。5 只有和file函数返回文件的全部内容,因此答案是A和D。readfile函数也能读取文件的全部内容,但它直接把内容送入了输出缓存,因此不能用在表达式中。6 fscanf函数能根据指定格式解析文件内容,因此答案是C。sscanf函数只能用来操作字符串。7 答案是E。注意,文件被以r模式翻开,即只读模式。因此,
23、如果文件不存在,PHP将输出一个错误来指出没有找到文件。如果文件存在,fopen()将被成功调用,但由于是以只读方式翻开,fwrite()会失败。如果我们用w代替r,脚本就能正常运行,并且my内将有50个随机字符记住,可以像访问数组那样使用索引来访问字符串。8 答案是E。PHP里没有叫delete()的函数。删除文件用unlink(),删除文件夹用rmdir(),数据库记录用SQL语句删除,释放变量用unset()。9 脚本实现的功能及()最接近,但这个函数直到PHP5才被引入,因此答案是C。10PHP4.3.0开场,php.ini引入了auto_detect_line_endings设置,系
24、统在保存文本文件时能够自动侦测行完毕符号的类型,因此答案是A。11要可读可写的翻开文件,你必须使用r+模式,因此答案是B和D。12这是在说fopen()函数。13正确答案是B,D和E。和都能读取文件的全部内容。14fwrite()和fputs()两个函数在这里都可以,而后者其实是前者的别名。在PHP中,写入二进制数据和写入字符串没有区别。15PHP会缓存某些文件系统函数的返回值包括(),这样能提高脚本处理重复操作时的效率。当脚本里有大量删除文件的操作时,缓存很容易就会过时,因此需要清理缓存。答案是A。16这是在说is_writeable函数,它返回一个表示文件是否可写的布尔值。17正确答案是D
25、。fseek()用来移动文件指针。SEEK_SET指出偏移量从文件开头开场计算。如果没有特别指出,SEEK_SET就是fseek()的默认模式。注意,rewind函数等效于fseek(0,SEEK_SET)。18答案是B。fstat函数通过已翻开的文件指针取得文件信息,stat()获取指定路径的文件信息。19正确答案是B。disk_free_space函数能确定指定设备上此题中即Windows下的C盘的剩余磁盘空间单位是byte,而disk_total_space()能确定设备的总容量。两者相除,再乘以百分率,最后用number_format()保存两位小数,脚本输出的就是剩余磁盘空间所占的比
26、例。最后在加上百分号以防混淆。20答案是E。你注意到两个代码块之间的空行了吗?它将被输出到浏览器上,使得整个图片的二进制数据出错。因此浏览器将显示一个破碎的图片或者是一条信息,指出图片出错。 译者注:原文中两个代码块之间并没有空行,而在我添加了空行之后,也没有调试出答案中描述的情况。管理日期及时间从某一点上来看,几乎所有的网站都需要处理日期及时间。假设你需要收集用户的生日,或者记录某个特定事件的发生时间,PHP 的日期函数将很好的帮助你完成任务。但是 PHP 的日期/时间管理功能并不完美。它基于 UNIX 时间戳运行,容易受到攻击,作为开发者,你必须慎重处理可能遇到的恶意数据。同时,在 Web
27、 上进展日期管理是一件国际性的事务。你必须能依据时区、地区的不同来显示对应的日期信息。本章测试题将考察以上所述的全部内容。1 选择适宜的答案填入空白处PHP 是一种_脚本语言,基于_引擎。PHP 最常被用来开发动态的_内容,此外,它同样还可被用来生成_以及其他文档。A动态,PHP,数据库,HTMLB嵌入式,Zend,HTML,XMLC基于 Perl 的,PHP,Web,静态D嵌入式,Zend,Docbook 文档,MySQLE基于 Zend 的,PHP,图像,HTML2以下哪种标签不是 PHP 起始/完毕符?AB/CD/* */E3以下代码哪个不符合 PHP 语法?A$_10B$“MyVarC
28、&$somethingD$10_somethingsE$aVaR4运行以下代码将显示什么?define(myvalue, 10);$myarray10 = Dog;$myarray = Human;$myarraymyvalue = Cat;$myarrayDog = Cat;print The value is: ;print $myarraymyvalue.n;2AThe Value is: DogBThe Value is: CatCThe Value is: HumanDThe Value is: 10EDog5 print()和 echo()有什么区别?Aprint()能作为表达式的
29、一局部,echo()不能Becho()能作为表达式的一局部,print()不能Cecho()能在 CLI命令行版本的 PHP 中使用,print()不能Dprint()能在 CLI命令行版本的 PHP 中使用,echo()不能E没有区别:两个函数都打印文本!6以下脚本输出什么?$a = 10;$b = 20;$c = 4;$d = 8;$e = 1.0;$f = $c + $d * 2;$g = $f % 20;$h = $b - $a + $c + 2;$i = $h $c;$j = $i * $e;print $j;A128B42C242.0D256E3427如何给变量$a,$b 和$c
30、赋值才能使以下脚本显示字符串“Hello, World!?$string = Hello, World!;$a = ?;3$b = ?;$c = ?;if($a) if($b & !$c) echo Goodbye Cruel World!; else if(!$b & !$c) echo Nothing here;else if(!$b) if(!$a & (!$b & $c) echo Hello, World!; else echo Goodbye World!; else echo Not quite.;AFalse, True, FalseBTrue, True, FalseCFal
31、se, True, TrueDFalse, False, TrueETrue, True, True8以下脚本输出什么?$array = 0123456789ABCDEFG;$s = ;for ($i = 1; $i 11 = 22 = 43 = 84 = 165 = 326 = 647 = 1288 = 2569 = 512Aforeach($result as $key = $val)Bwhile($idx *= 2)Cfor($idx = 1; $idx = $idx; $idx = 0)Ewhile($idx “my,1 = “call,2 = $function,3 = ,4 = “
32、function,5 = $a,6 = $b,7 = a,8 = b,9 = );$a = true;7$b = false;/* Group A */$name = $s?.$s?.$s?.$s?.$s?.$s?;/* Group B */$name($s?, $s?);脚本中的每个问号(?)代表$s 数组的一个数字索引。要想代码执行时显示 Hello, World!字符串,该如何选择数字索引?AGroup A: 4,3,0,4,9,9 Group B: 7,8BGroup A: 1,3,0,4,9,9 Group B: 7,6CGroup A: 1,3,2,3,0,4 Group B: 5
33、,8DGroup A: 0,4,9,9,9,9 Group B: 7,8EGroup A: 4,3,0,4,9,9 Group B: 7,815运行时run-time包含一个 PHP 脚本使用_,而编译时compile-time包含一个 PHP 脚本使用_。Ainclude_once, includeBrequire, includeCrequire_once, includeDinclude, requireE以上皆可16什么情况下声明函数时不能给参数赋默认值?A当参数是布尔值时B当函数是类中的成员时C当参数是通过引用传递时D当函数只有一个参数时E永远不会17_操作符在两个操作数中有一个不是
34、全部为 True 时返回 True。答案:_18全等运算符=如何比拟两个值?A把它们转换成一样的数据类型再比拟转换后的值B只在两者的数据类型和值都一样时才返回 True8C如果两个值是字符串,那么进展词汇比拟D基于 strcmp 函数进展比拟E把两个值都转换成字符串再比拟19以下哪个选项是把整型变量$a 的值乘以 4?双选A$a *= pow (2, 2);B$a = 2;C$a = 2;D$a += $a + $a;E一个都不对20一段脚本如何才算彻底终止?A当调用 exit()时B当执行到文件结尾时C当 PHP 崩溃时D当 Apache 由于系统故障而终止时答案1 唯一有意义的答案是 B。
35、PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比如 XML。2 PHP 编程中,人们不太使用和两个标签,但它们确实是合法的 PHP 界定符。标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这当中的某些标签无法在特定的情况下使用。3 PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。$“MyVar是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的引用。然而,变量名不能以数字为开头,$10_s
36、omethings 是非法的,因此答案是 D。4 注意,$myarray 的键值并没有打上引号。所以,正在访问的键不是 myvalue 字符串,而是常量 myvalue 的值。最终访问的是$myarray10,值是 Dog,答案是 A。5 尽管 print()和 echo()在绝大多数情况下可以互换使用,但它们之间还是有一处不同。print()是函数,有返回值;echo()实际上是一个语言构造,没有返回值,并且不能在表达式中使用。因此,答案是 A。6 %运算符表示取模,它返回两个操作数相除的余数。是左移运算符,相当于乘以 2的 N 次方。最后的答案乘以了一个浮点数,改变了它的数据类型。但是,由
37、于小数点后是零,因此输出的结果不包含小数局部。答案是 256D。7 根据条件式的逻辑,要想得到 Hello, World!字符串,必须要在第一个 if 构造中满足 else的条件。因此$a 必须为 False,然后$b 也必须为 False。最内层的条件语句的实现要求先前的两个变量$a 和$b是 False,而$c 必须是 True答案是 D。8 正确答案是 C。从 PHP4.2.0 开场,除非已经给定了一个伪随机整数列,否那么不再需要用 srand()函数初始化随机数生成器。此外,即使随机数生成器没有被事先播种,脚本仍然会生成 49 个伪随机字符。尽管$array 变量是字符串,但可以用访问数组的方式进行访问使用数字索引访问某个位置上的字符。最后,for 循环将从 1 开场执行到 50,也就是执行了 49 次。9 用一系列的 ifelse 语句来检查一个条件的代码块,最适合用 switch 语句来替代。switch($a) case a:somefunction();break;case b:10anotherfunction();break;case c:dosomething();break;default:donothing();因为 if 语句中有一个捕捉所有其他条件的 else,对应的,switc