[Zend权威认证试题讲解]第五章 - 字符串与正则表达式
字符串是PHP的“瑞士军刀”——作为一种Web开发语言,PHP最常打交道的就是字符串。因此对于开发者来说,处理字符串是一项非常基础的技能。幸运的是,由于PHP开发团队的努力,PHP对字符串的处理相当易学。你只需迈过第一个难关,接下来就一马平川了。U'{,ZU$P:iN
但是,PHP的这一部分功能并非完美。本章考验你对字符串的了理解及对处理字符串的函数的认识。此外,你还必须面对正则表达式——一个非常有用,却总是被开发者忽试的工具——的编写艺术。
"faE0Ie_ xF
7` AYKUI C_w)i
问题
1.考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串php?[code]
<?php&k#~ ^ O9P iV
$alpha = 'abcdefghijklmnopqrstuvwxyz';%UP)Xy3V+\%~W7VX
$letters = array(15, 7, 15);
foreach($letters as $val) {
/* 这里应该加入什么 */
}
?>[/code]A.echo chr($val);
B.echo asc($val);
C.echo substr($alpha, $val, 2);(j p,c4F7Ah s X
D.echo $alpha{$val};
E.echo $alpha{$val+1}"m(E M[r5i
$c*Z6_(~e DQ
\!|-T5B@+G
2.以下哪一项不能把字符串$s1和$s2组成一个字符串?&myHM#}&} r
'D&Jy5^aNh%U ~
A.$s1 + $s2
B."{$s1}{$s2}"t-Ec;x c2GF
C.$s1.$s2
D.implode('', array($s1,$s2))
E.以上都可以0gD7EtWCrI2o
:|6H}9m E@
uYoZ6FtJo
3.变量$email的值是字符串[email=user@example.com][color=#006699]user@example.com[/color][/email],以下哪项能把字符串转化成example.com?
A.substr($email, strpos($email, "@"));*KpvJ-Y6UYA-E
B.strstr($email, "@");p'up/w N;Y'X)_
C.strchr($email, "@");h%g)Ubkf6}
D.substr($email, strpos($email, "@")+1);+[7dd F%T%J_6W YSP
E.strrpos($email, "@"); h7VFc FJd3x"j?
4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组?~ Bql,^kX
nk1A$nFt j)Z6e
A.strstr()B H u%r-wL5Rv
B.不可能只调用一次就完成,\-?7A#R8~*tf{/o1@)]
C.extract(){0XV[ t M
D.explode()-x:?0B \,\ o A
E.strtok()
5.要比较两个字符串,以下那种方法最万能?
lN b g/_+Z
A.用strpos函数
B.用==操作符rP nD2s'E%GM
C.用strcasecmp()x X%Z)UU)c |
D.用strcmp()
'v1jF9n[Ff mYf
0xS!X/eyS8z6s
6.以下哪个PCRE正则表达式能匹配字符串php|architect?3j3H\{:Jl
wb5b"Yp0K-j
A..*
B....|........."K0yT!q"\M"YBm@[ B
C.\d{3}\|\d{8}
D.[az]{3}\|[az]{9}6z+ii;HI}
E.[a-z][a-z][a-z]\|\w{9}
QL|um2Ul{$[
7.以下哪些函数能用来验证字符串的完整性?(三选)
8XS,b:L/r,kK
A.md5()*j jO4A+l BL
B.sha1()8xE5Lp%ynQ
C.str_rot13()
D.crypt()
E.crc32()+G)I*i)Y&l&q [ |.c
#sqR*HSDP8P`
8.哪个PHP函数与以下脚本在UNIX系统下执行的效果近似?[code]
<?php%T0@y z8b6c5P`
function my_funct ($filename)-UT(wF}c*B
{
$f = file_get_contents ($filename);
return explode ("\n", $f);
}
?>[/code]A.fopen()
B.fread()
C.flock()
D.split_string()-fK!EYa(R
E.file() H#K*W`&Pc]V%y"p
9.基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到?(双选)
A.preg_split()
B.ereg()
C.str_split() k'Y\5MVgd5X
D.explode()
E.chop()6^0{x+^ G
)S#G0d^#{9\
7`,N8DDj
10.以下脚本输出什么?[code] \ZA#t;nB:H
<?php
echo 'Testing ' . 1 + 2 . '45';
?>[/code]A.Testing 1245
B.Testing 345|:X@7v7`BD
C.Testing 1+245
D.245N:P.? YQ
E.什么都没有
\4YD R)OQP"m
11.以下脚本输出什么?[code] !d#Ct fFRJh Gf
<?php9sJ#j na5IE
$s = '12345';
$s[$s[1]] = '2';
echo $s; R j&u {g9gW
?>[/code]A.12345P+V+x:O%{;o0y,UA
B.122458b'T0v*ah#Gp!m
C.22345
D.113451a[,d Me`"x[
E.Array
/Y/k$Q4^`$BBr.Fv
)w?R"Yq n4|
12.方框中的正则表达式能与以下哪些选项匹配?(双选)[code] MX%}"yg4rZ|2L
/.**123d/[/code]A.******123
B.*****_1234
C.******1234
D._*1234