[Zend权威认证试题讲解]第十章 - 流与网络编程
当要处理外部数据源时,PHP提供了许多不同的方式来与外部世界连接。这当中包括文件访问与E-Mail管理。然而,这两种机制的针对性都太强:文件管理只能处理本地文件系统,而E-Mail函数也只能解决网络连接中很小一部分的问题。要实现更多的功能,PHP提供了一种叫“流(stream)”的工具,使得处理任何文件形式的数据源成为可能。比如,“fopen封装器”能将外部服务器上的页面读入你的脚本中,这是使用流的最好的例子。它让你能够使用文件函数从英特网中获得内容。
最后,更复杂的操作可以通过socket编程实现,使得高层应用成为可能。
本章考察你对这两个领域中知识的了解。
)tcqpV/YOuU o+l.R
问题
1.以下哪一项不是合法的PHP文件资源?
'a'Yo%B`%?!C d
A.\\server\path\filename
B.[url=http://www.example.com/index.php][color=#0000ff]http://www.example.com/index.php[/color][/url]BRU d_*L
C.myfile.txt
D.compress.zlib://myfile.txt
E.以上都不合法
#Lo,E9pKB@,~z
y^aC"?:Z7{4_Li
2.哪个函数能创建并注册一个PHP的流封装器?j E.h x"bl9M.?
答案:____________"a[S4d}
8l[7_2J"\ w*P*P4U3uV7o"|
3.用stream_get_meta_data函数,流API无法提供下列哪种信息?
w]Yez
A.是否仍然有数据未读
B.流是否过期B@{ P_ S(^h&B
C.流是否被阻挡
D.通过流传输了多少数据
E.流构建的成分`&a%Jr#}$xI9`"\
6glL TsotD
4.以下哪些是PHP支持的流传输方式?(双选)V5? UpR6MA
/Nw!u9j+t'_ b)s.i
A.http
B.STDIO
C.ftpiwr k*z dC
D.STDOUT
E.stream
"PdP;HLs7cJZ
5.Stream context提供了通过当前流传输的数据的信息,并能对以下哪个部分进行配置?(双选)
F4E!y O0ts,o
A.流过滤器(Stream Filter)&S2m5?1W/|[
B.流传输器(Stream Transport)!P9o+t"u{"G#mM0Lu)@
C.文件封装器(File Wrapper)'hqz1wYcb9rA
D.单独的读/写流g!uQyWZT1l
E.以上全部
6.哪个函数能用来手动打开一个socket,来连接一台文件封装器不支持的服务器?
答案:____________
y8i6v(_0t9vl m y:\
7.PHP不支持以下那种传输协议?/dXIM#N0h%KK)Ht'm
![ Z O)E/DjUqSF
A.tcp
B.udpD*Y1[ ]9Ha$m%X
C.udg~_ t2a#u*bx.e
D.pdc+GA O)X(e6c~
E.unix
f.hbc.H Q|3L
h9rCl(vV0o
8.假设你需要通过tcp周期性的向一台服务器发送数据。时间间隔不确定,你必须能在发送完成后立刻进行下次发送。而你的脚本还需要在传输间隔中完成其他操作。你在编写脚本时发现,如果服务器响应时间过长,则经常要在fread()上等待,使得其他操作无法正常进行。如何解决这个问题? )@QlVS'dy:I
$wP@'c C
A.降低max_execution_time,迫使fread()减少等待时间|/W_S7?
B.调用fsockopen()进行连接时,降低超时等待的时间$R%D8@ aQ6k!n1k ]7LO
C.关闭socket阻隔,q @*DKN5^K
D.打开socket阻隔
E.以上都不对v0Who7m0J,wI.E
!wg^F)RD1g%[.b
9.处理socket超时时,连接超时与读写超时可以分开设置。哪个函数能实现这个功能?utO ?6G1A!v.~
答案:____________:FZ&Rf|fV
10.假设你需要编写一个脚本,用来通过任意一个流读取文本数据,并用另一个ROT13编码的流写回。编码必须在用第二个流写回时进行。怎么做最合适?
A.把编码后的数据存在临时变量中,把这个变量写入流
B.用流过滤器即时编码
C.创建一个ROT13查询表,然后一个字符一个字符的即时写入
D.ROT13无法即时编码K"Crr,t,T
E.以上都不对fEx[S
!L+R0]v9y/M
11.以下脚本输出什么?
[code]<?phpw$c%j ]8w8?zr
echo long2ip (ip2long ('127.0.256'));B5] ~uq#@
?>Ty7GJI3i@
[/code]
A.一个警告
B.255.255.255.255!l(D8}#iI]H
C.-1 L!J@GF:?
D.127.0.1.08T1_"H*K!]4C-w U
E.127.0.256.0*eqIk"_9@TB!g7_
12.以下脚本输出的是什么? C&e~H/v&yk
[code]<?php
echo getservbyname ('ftp', 'tcp');