文章教程

6.2对字符串做比较和替换

9/17/2020 9:31:19 PM 人评论 次浏览

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()进行字符串替换(二)

教程类别