[Zend权威认证试题讲解]第六章 - 文件操作
你可能觉得PHP的文件操作功能并不怎样,但实际上它对开发者来说非常有用。即使你是做网站开发的,学会相关技能也能让你如虎添翼。多亏了流包装器(stream wrappers,将在第十章详细介绍),PHP才能够打开并读取远程文件,让在本地使用第三方网站的内容变得可能。站在更底层的角度,文件输入/输出能完成多种任务。可以用他读取预制文件的内容,比如第三方提供的内容;或者通过PHP脚本让浏览器打开一个二进制文件,使得你能更切实的控制它。无论如何,本章不仅考验你打开、关闭和读取文件的能力,还考查多进程下进行文件操作的基础知识——例如文件锁。
问题m K V8n%M vKj#q;\m
;N,|4PV,{._'X1L
1.函数______能读取文本文件中的一行。读取二进制文件或者其他文件时,应当使用______函数。NbWg'hA
&`-ah%ZO'h#S4J
A.fgets(), fseek()
B.fread(), fgets().U-G*N&jZBX
C.fputs(), fgets()cH:qhqi2~bl
D.fgets(), fread()j8a!D-F6W3@:PP
E.fread(), fseek()@P n`.h
(t!X)f]f.p/|5e+a:yn(Q
2.文件指针能在PHP脚本结束时自动关闭,但你也可以用______函数来关闭。
答案:____________#@+u N?Qql r~ N
~+X2SF Z[:h$y W'E
3.考虑如下PHP脚本,它一行一行的读取并显示某文本文件的内容。在问号处填入什么才能使脚本正常运作?[code]
<?php7VQmJ!N{
$file = fopen("test", "r");/X~8Z6m\:sn3w1V {}
while(!feof($file)) {b9B4{3}V/Z6dE7Dh
echo ????????????;F:d&g{(OrIw W
} pvv/?u%|W)he
fclose($file);6DVcJ2SG_
?>[/code]A.file_get_contents($file)B[&d"ML1{I%i
B.file($file)
C.read_file($file)
D.fgets($file):GpH Hy }(O.z
E.fread($file)vvS(D:pp
TNi@"?
4.以下哪种方法能保证锁在任何竞争情况下都安全?qe SXp
A.用flock()锁住指定文件
B.用fopen()在系统的临时文件夹里打开文件
C.用tempnam()创建一个临时文件M.fU&EdeA8|
D.用mkdir()创建一个文件夹来当^"E3zN$n@
E.用tmpfile()创建一个临时文件
9QrA,N5AN @8jIw y
5.以下哪个函数能够获得文件的全部内容,并能够用在表达式中?(双选)
JQ,PtED,ct%v
A.file_get_contents()
B.fgets()
C.fopen()+muu]x S
D.file()*?/dI rI7_Rxb
E.readfile()
M I_N-T9w0E
6.在不把文件内容预加载到变量中的前提下,如何解析一个以特殊格式格式化过的多行文件?
A.用file()函数把它分割放入数组
B.用sscanf()j2x#W)N3[o X
C.用fscanf()
D.用fgets() ]t"Qz@~jx
E.用fnmatch()s2DT*F8W%MQ yu
d7d)i%[.GX Ip
7.考虑如下脚本,最后文件myfile.txt的内容是什么?[code] s,ww:I)OJ/K.L
<?php
$array = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$f = fopen ("myfile.txt", "r");6aG&q @h+n$FK
for ($i = 0; $i < 50; $i++) {
fwrite ($f, $array[rand(0, strlen ($array) - 1)]);3I!p9T(On{
}
?>[/code]A.什么都没有,因为$array实际上是一个字符串,而不是数组Q%y1S`W-Vl[aE
B.49个随机字符
C.50个随机字符 zL_^'hRe o$J
D.41个随机字符1y-@8J;ODty8Tq
E.什么都没有,或者文件不存在,脚本输出一个错误
+m;k!S0Z5f
8.函数delete是做什么的?
A.删除文件,@\KR V'c1F1^
B.删除文件夹YK6@H9~S"x!_ c
C.释放变量
D.移除数据库记录-s*TE*YZ0H*` L
E.没有这个函数!DG`7eW{K"_`
9.考虑如下脚本,哪个PHP函数和它的功能最接近?[code]
<?phpO'M-B0s*EE
function my_funct ($file_name, $data)
{
$f = fopen ($file_name, 'w');
fwrite ($f, $data);8vT,x&P1T3b^/Y%v
fclose ($f);
}
?>[/code]A.file_get_contents()
B.file_put_contents()
C.没有这样的函数
D.file()1ci:b.G'K#L7Ol
E.fputs()BcI N#zGD
s#BJe#\o
10.如果你的脚本无法正确识别一个存储于另一个平台上的文件的行结尾,你该怎么办?
A.改变auto_detect_line_ending的设置
B.用正则表达式侦测行的最后一个字母
C.用fpos()
D.用ftok():k:RM8`h-|-^
E.每次读取一个字符
w%C^]7mU&T7xO
11.如果想要可读可写得打开一个文件,该给fopen()传什么参数?(双选)
/|U!A,g,}u/c
A.wHPI[-P,OD*|o-\]-p%u
B.r
C.a
D.+
JX$W2m\}
12.能够读写常规文件中的二进制数据的函数是______,该函数返回的资源能被fgets()使用。
XO-hEq:]
答案:__________%L&w1S}0ngZ;de
13.以下哪些函数能读取文件的全部内容?(三选)
+UFHfV!F
A.fgets()f l'JApi1SR
B.file_get_contents()q1Da/e },rmb
C.fread()kw"e |?^$X?OgY
D.readfile()/l4g)S"nz$w|P
E.file()