[Zend权威认证试题讲解]第十章 - 流与网络编程
当要处理外部数据源时,PHP提供了许多不同的方式来与外部世界连接。这当中包括文件访问与E-Mail管理。然而,这两种机制的针对性都太强:文件管理只能处理本地文件系统,而E-Mail函数也只能解决网络连接中很小一部分的问题。+M|`vZ2\要实现更多的功能,PHP提供了一种叫“流(stream)”的工具,使得处理任何文件形式的数据源成为可能。比如,“fopen封装器”能将外部服务器上的页面读入你的脚本中,这是使用流的最好的例子。它让你能够使用文件函数从英特网中获得内容。
最后,更复杂的操作可以通过socket编程实现,使得高层应用成为可能。
本章考察你对这两个领域中知识的了解。
r+Sde8tz!@
问题
L(bz/Wp:d(X S$uF
1.以下哪一项不是合法的PHP文件资源?)MGkx-WC5F#lgE
;X(]|e"do$rW.Q%T5J
A.\\server\path\filename
B.[url=http://www.example.com/index.php][color=#0000ff]http://www.example.com/index.php[/color][/url]!\uSw`(Dw
C.myfile.txt
D.compress.zlib://myfile.txt
E.以上都不合法
2.哪个函数能创建并注册一个PHP的流封装器?
答案:____________
G6sB0a'IrBHYO
3.用stream_get_meta_data函数,流API无法提供下列哪种信息?
A.是否仍然有数据未读
B.流是否过期2scpF"j'w'SP
C.流是否被阻挡
D.通过流传输了多少数据7?f\2_8\Z5ev
E.流构建的成分x i(GJ0y
;}u4?qG^
4.以下哪些是PHP支持的流传输方式?(双选)*VHry l
A.http3c4_#]vi(u \
B.STDIOH^'RNT/L2n
C.ftp
D.STDOUT
E.stream2e2P-xxl B Yc3?
5.Stream context提供了通过当前流传输的数据的信息,并能对以下哪个部分进行配置?(双选)%G@.f5j0j3L$B-{'L
A.流过滤器(Stream Filter)
B.流传输器(Stream Transport)FMkBrZ
C.文件封装器(File Wrapper)
D.单独的读/写流M l1Dg+kZ;M.M ?M%B)G
E.以上全部3z3L#GF7hnZ
O!S'cW~ t*vE
6.哪个函数能用来手动打开一个socket,来连接一台文件封装器不支持的服务器?"w5BNv;U#G6X3}
+R1OC;E)C Z
答案:____________V8tnEC;ZV
7.PHP不支持以下那种传输协议?nLKW6p2|_
cX1`pvlK
A.tcp2N$u1dgpJW
B.udp
C.udg
D.pdc6aVN _u4r*\
E.unix
8|X)^5h qv ?c
S~jt&{V8H:`?
8.假设你需要通过tcp周期性的向一台服务器发送数据。时间间隔不确定,你必须能在发送完成后立刻进行下次发送。而你的脚本还需要在传输间隔中完成其他操作。你在编写脚本时发现,如果服务器响应时间过长,则经常要在fread()上等待,使得其他操作无法正常进行。如何解决这个问题?
A.降低max_execution_time,迫使fread()减少等待时间1|1H:R+U'dTe7@
B.调用fsockopen()进行连接时,降低超时等待的时间P(x-B'\5e#G2zM
C.关闭socket阻隔
D.打开socket阻隔
E.以上都不对7E*G id-~K
^:LpQr H_v [J
V#RT[^ |5kz(y]/D
9.处理socket超时时,连接超时与读写超时可以分开设置。哪个函数能实现这个功能?#B-tW wd2a\-F7Z
a m3pz9PJ+~!o}
答案:____________
t1]\z*|
10.假设你需要编写一个脚本,用来通过任意一个流读取文本数据,并用另一个ROT13编码的流写回。编码必须在用第二个流写回时进行。怎么做最合适?B(m}*`CoS
3mX4y[M0E ugBv
A.把编码后的数据存在临时变量中,把这个变量写入流Y2[L~w
B.用流过滤器即时编码3RK4e1r~)]Q
C.创建一个ROT13查询表,然后一个字符一个字符的即时写入}vg e$C5N GI%~i
D.ROT13无法即时编码6~5QfH ?2e,XA
E.以上都不对-B~fO5t!K8Z;Q'[
dw?9S\4? \3k9]
d iNZQZj)NI(Z
11.以下脚本输出什么? | F b6lc
[code]<?php
echo long2ip (ip2long ('127.0.256'));5`V'E@$g
?>6z!k0F`)C0\5el;Z0H
[/code];GC3kMA9Q!R
A.一个警告0|k-Ak.P%P
B.255.255.255.255
C.-1
D.127.0.1.0&bCxT%C;l
E.127.0.256.0
U"K7\g{+t
12.以下脚本输出的是什么? q&o yMPC;rd-@ N
[code]<?php
echo getservbyname ('ftp', 'tcp');.K.C(YA-|;c |J!F't
?>s:O ].y-?O2Pl/`(l-\
[/code]$D^ F2wu-{*F5K$`
A.本地FTP服务器列表(]$Ol P*p\U
B.名为“tcp”的FTP服务器的地址@B_FSJ ao
C.与TCP服务器相连的名为“FTP”的端口v*gB%h,v9]
D.除了FTP以外所有服务的端口列表 QHqL(J-K
Yn-r E7V%`,Q\
c Y,nJCc/]Wh
13.gethostbynamel函数有什么用?
$c [&HNGi{'f
A.返回某个主机名的IP
B.返回某个主机名的所有IP列表4]Vo,bwX [e6^
C.以长整型数的形式返回某个主机的IP
D.以长整型数的形式返回某个主机的所有IP列表