[Zend权威认证试题讲解]第十章 - 流与网络编程
当要处理外部数据源时,PHP提供了许多不同的方式来与外部世界连接。这当中包括文件访问与E-Mail管理。然而,这两种机制的针对性都太强:文件管理只能处理本地文件系统,而E-Mail函数也只能解决网络连接中很小一部分的问题。G1dL;~u x~YX要实现更多的功能,PHP提供了一种叫“流(stream)”的工具,使得处理任何文件形式的数据源成为可能。比如,“fopen封装器”能将外部服务器上的页面读入你的脚本中,这是使用流的最好的例子。它让你能够使用文件函数从英特网中获得内容。3mrG@4O1b I
最后,更复杂的操作可以通过socket编程实现,使得高层应用成为可能。!RnBIN2Y Nu/a2l
本章考察你对这两个领域中知识的了解。:c)dRX)Z&\'OJP;x
n_Y@9S/r f!PD:c
问题
?6`8_7NX$q'h-w
1.以下哪一项不是合法的PHP文件资源?
A.\\server\path\filename
B.[url=http://www.example.com/index.php][color=#0000ff]http://www.example.com/index.php[/color][/url]Q1j9V!L%H
C.myfile.txt
D.compress.zlib://myfile.txt
E.以上都不合法&S{pR0?,_xo
C"C U*P7v
/Xn F v\!bY)y3W9R
2.哪个函数能创建并注册一个PHP的流封装器?
vnWiDE'r
答案:____________
$f/H*[_3SH@](fz
3.用stream_get_meta_data函数,流API无法提供下列哪种信息?
A.是否仍然有数据未读
B.流是否过期
C.流是否被阻挡+F0}$h;wjn6M
D.通过流传输了多少数据
E.流构建的成分h*du{+C MV-h
4.以下哪些是PHP支持的流传输方式?(双选)j&\&fF:W r YE{5g
A.http
B.STDIO W'M2kGl:KB
C.ftp,p+h1F([h@+VK4V
D.STDOUT
E.stream
/T~2gh:e
5.Stream context提供了通过当前流传输的数据的信息,并能对以下哪个部分进行配置?(双选)
A.流过滤器(Stream Filter)
B.流传输器(Stream Transport)9]B8j+`)YfVK,`T
C.文件封装器(File Wrapper)6X\4Yj(N ykC
D.单独的读/写流C(U Q,}8e~:S`,S/[7|6Ic
E.以上全部
%`-x`8b6L-m,evI
$uh-xsf:T;y#Np
6.哪个函数能用来手动打开一个socket,来连接一台文件封装器不支持的服务器?F7s3cG:a4v4P+w
Z9?2T_:i9@@CwVQ:Wz
答案:____________
9N7s4Us7W$o T/T
!I\"}/d\#V
7.PHP不支持以下那种传输协议?
A.tcp
B.udpV"UsM%eD
C.udg
D.pdcB]X)k7n`P!Wr%K$m$B
E.unix2d*a\^0e*E_
V9qt O%gS|D\
8.假设你需要通过tcp周期性的向一台服务器发送数据。时间间隔不确定,你必须能在发送完成后立刻进行下次发送。而你的脚本还需要在传输间隔中完成其他操作。你在编写脚本时发现,如果服务器响应时间过长,则经常要在fread()上等待,使得其他操作无法正常进行。如何解决这个问题?
A.降低max_execution_time,迫使fread()减少等待时间:sJ To~*WC&Y