6.2对字符串做比较和替换
6.2 对字符串做比较和替换
字符串比较通常是指判断两个字符串是否一样,用更专业的说法就是比较两个字符串的大小。PHP通过字符的ASCII码来决定字符的大小,从而决定字符串的大小。例如,字母a的ASCII码是097,字母b的ASCII码是098,因此b>a。字母表中,越靠后的字母的ASCII码越大,所有小写字母比大写字母的ASCII码大。
6.2.1 比较两个字符串大小
PHP提供了函数strcmp()对两个字符串比较大小,语法如下。
int strcmp(string $str1, string $str2);
函数strcmp()接受两个参数,它们是待比较的字符串。该函数返回值是整数,如果字符串$str1和字符串$str2相等,则函数返回0;如果字符串$str1小于字符串$str2,则函数返回-1;如果字符串$str1大于字符串$str2,则函数返回值大于0。代码6-3演示了函数strcmp()的用法。
代码6-3使 用函数strcmp()比较字符串大小6-3.php
01 <?php
02 $str1 = "PHP string"; //
定义两个字符串变量
03 $str2 = "PHP String";
04
05 if(strcmp($str1,$str2)==0) //
比较两个字符串变量
06 {
07 echo "$str1
和 $str2
相等";
08 echo "<br/";
09 }
10 else
11 {
12 echo "$str1
和 $str2
不相等";
13 echo "<br/>";
14 echo "<br/>";
15 echo "
函数strcmp
的比较结果为:".strcmp($str1,$str2);
16 }
17 ?>
【代码解析】这段代码的执行结果如图6-3所示。从结果可以看出,函数strcmp()比较字符串中的每个字符,直到遇到第一个不同的字符为止,根据这两个字符的大小关系,来决定字符串的大小。如果比较到最后,没有遇到不同的字符,该函数就会返回0。
注意 函数strcmp()对字符串的比较是区分大小写的。
6.2.2 字符串的替换
在实际开发中,有时需要将字符串中的某些字符串替换成其他字符串,这可以通过PHP的内置函数str_replace()来完成。该函数的语法如下。
string str_replace(string $search, string $replace, string $str);
该函数将字符串$str中的$search部分全部替换成字符串$replace,并且返回替换后的字符串。代码6-4演示了该函数的用法。
代码6-4使 用函数str_replace()做字符串替换(一)6-4.php
01 <?php
02 $str1 = "I"m learning programming with Perl"; //
定义两个字符串变量
03 $str2 = "PHP";
04
05 echo "
替换前:".$str1;
06
07 $str = str_replace("Perl",$str2,$str1); //
用$str
的值替换字符串Perl
08 echo "<br/>";
09 echo "<br/>";
10
11 echo "
替换后:".$str;
12 ?>
【代码解析】这段代码的执行结果如图6-4所示。

图6-3 使用strcmp()比较两个字符串的大小

图6-4 使用str_replace()进行字符串替换(一)
该函数也可以接受数组参数。代码6-5演示了函数str_replace()接受数组参数来完成字符串的替换。
代码6-5使 用函数str_replace()做字符串替换(二)6-6.php
01 <?php
02 $str = "I prefer to use JSP,PHP,ASP!"; //
定义字符串变量$str
03
04 $page_lan = array(
05 "JSP",
06 "PHP",
07 "ASP"
08 ); //
定义数组变量$page_lan
09
10 $base_lan = array(
11 "C",
12 "C++",
13 "Java"
14 ); //
定义数组变量$base_lan
15
16 $new_str = str_replace($page_lan,$base_lan,$str); //
开始字符串替换
17 echo "
替换前:".$str;
18
19 echo "<br/>";
20 echo "<br/>";
21 echo "
替换后:".$new_str;
22 ?>
【代码解析】该程序首先将字符串$str中要替换的部分写成数组的形式(第04~08行),然后将替换内容也存放在数组单元中(第10~14行),第16行的函数str_replace()会按两个数组元素的对应顺序依次在字符串中进行替换。这段程序的执行结果如图6-5所示。

图6-5 使用str_replace()进行字符串替换(二)
上一篇:6.1对字符串做分割和合并
下一篇:6.3输出打印字符串
