1. 比较字符串
字符串之间的比较的方法有多种,第一种是使用 strcmp() 和 strcasecmp() 函数 按字节进行比较;第二种是使用 strnatcmp() 函数 进行比较;第三种是使用 trncmp() 函数 从源字符串的制定位置开始比较;
1.1 按字节进行字符串的比较
按字节进行字符串的比较有两种,分别是利用 strcmp() 和 strcasecmp() 函数 ; 两个函数的区别是:strcmp() 函数 区分字符的大小写,strcasecmp() 函数 不区分大小写,两个函数的实现方法基本相同;
int strcmp(string str1,string str2)
参数 str1 和 str2 指定要比较两个字符串;若相等,函数返回值为0;若参数 str1 大于参数 str2,函数返回值大于0;若参数 str1 小于参数 str2,函数返回值小于0; 注意: strcmp() 函数区分字符的大小写; 例子:使用 strcmp() 和 strcasecmp() 函数分别对两个字符按字节进行比较
<?php
$bbc1 = "编程语言!";
$bbc2 = "编程语言!";
$bbc3 = "CHINESE";
$bbc4 = "chinese";
echo strcmp($bbc1,$bbc2)."<br>";
echo strcmp($bbc3,$bbc4)."<br>";
echo strcasecmp($bbc3,$bbc4)."<br>";
?>
执行结果如下所示
1.2. 按自然排序法进行字符串的比较
PHP 中,按照自然排序法进行字符串的比较是通过 strnatcmp() 函数 来实现; 自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小进行比较; 语言格式如下:
int strnatcmp(string str1,string str2)
若字符串相等,返回0;若参数 str1 大于参数 str2 ,返回值大于0;若参数 str1 小于参数 str2,返回值小于0,; strnatcmp() 函数区分大小写; 自然运算法则中,2 比 10 小,而在计算机序列中,10 比 2 小,因为“10”中的第一个数字是“1”,它小于 2; 例子:使用 strnatcmp() 函数按自然排序法进行字符串的比较;
<?php
$bbc1 = "编程语言2!";
$bbc2 = "编程语言10!";
$bbc3 = "CHINESE1";
$bbc4 = "chinese5";
echo strcmp($bbc1,$bbc2)."<br>";
echo strcmp($bbc3,$bbc4)."<br>";
echo strnatcmp($bbc1,$bbc2)."<br>";
echo strnatcmp($bbc3,$bbc4)."<br>";
?>
执行结果如下所示
按照自然排序法比较时,还能使用另一个与 strnatcmp() 函数 作用相同,但不区分到小写的 strnatcasecmp() 函数 ;
1.3. 从源字符串的指定位置开始比较
语法格式如下: strncmp() 函数用来比较字符串中的前 n个字符;
int strncmp(string str1,string str2)
若字符串相等,函数返回0;若参数 str1 大于参数 str2,返回值大于 0;若参数 str1 小于参数 str2,返回值小于0; strncmp() 函数区分大小写; strncmp() 函数的参数如下表所示 例子:使用 strncmp() 函数比较字符串的前两个字符是否与源字符串相等
<?php
$bbc1 = "Hello word!";
$bbc2 = "a am teacher!";
echo strncmp($bbc1,$bbc2,2);
?>
由于变量 $bbc2 中字符串的首字母为小写,与变量 $bbc1 中的字符串不匹配,所以比较后的函数返回值为 -1;
2 检索字符串
PHP 可以像Word一样实现字符串的查找功能;
2.1. strstr() 函数:使用 strstr() 函数查找指定的关键字
用 strstr() 函数 获取指定字符串在另一个字符串中首次出现位置直到后者末尾的子字符串;若执行成功,返回获取的子字符串(存在相匹配的字符);若失败,返回FALSE; 语法格式如下:
string strstr(string haystack,string needle)
strstr() 函数的参数如下表所示:
例子:使用 strstr() 函数获取图片全名后缀,判断图片样式
<?php
$bbc = '1.png';
$bbc1 = strstr($bbc,".");
if($bbc1 != ".jpg"){
echo "图片格式不是jpg!";
}
else{
echo "图片格式是jpg!";
}
?>
执行结果如下所示:
2.2. substr_count() 函数:使用 substr_count() 函数检索字符出现的次数
用 substr_count() 函数 获取指定字符在字符串中出现的次数; 语法格式如下
int substr_count(string haystack,string needle)
参数 haystack 为指定的字符串; 参数 needle 为指定的字符; 例子:使用 substr_count() 函数获取字符在字符串中出现的次数
<?php
$bbc = "teacher 是伟大的人!";
echo substr_count($bbc,"e");
?>
执行结果如下所示:
3. 替换字符串
通过以下两个函数能对字符串进行替换 str_ireplace() 函数 和 substr_replace() 函数 ;
3.1. str_ireplace() 函数
使用新的字符串(子串)替换原始字符串中指定要替换的字符串; 语法格式如下:
mixd str_ireplace(mixed search,mixed relace,mixed subject[,int &count])
将所有参数 subject 中出现的参数 search 以参数 replace 取代,参数 count 表示替换字符串执行的次数,不区分大小写; str_ireplace() 函数的参数如下表示所示
例子:将文本中的指定字符串“PHP”替换为“Python”,并且输出替换后的结果
<?php
$bbc1 = "PHP";
$bbc2 = "Python";
$bbc = "Python 是一门高级编程语言,简单易学。PHP 语言简单易懂,
开发web用PHP编程语言更加方便,PHP还是一门优秀的Web后端语言";
echo str_ireplace($bbc1,$bbc2,$bbc);
?>
执行结果如下所示:
str_ireplace() 函数 在执行替换操作时不区分大小写,若需要区分大小写,可使用 str_relace() 函数 ; 字符串替换常用在搜索引擎的关键字处理中,可使用字符串替换技术为搜索到的字符串中的关键字替换颜色; 查询关键字描红是指将查询关键字以特殊的颜色、字号或字体进行标识,这样可使浏览者快速检索所需要的关键字,方便浏览者从搜索结果中查找所需要的内容,查询关键字描红适用于模糊查询; 例子:用 str_ireplace() 函数替换查询关键字,当显示查询的相关信息时,将输出的关键字变红
<?php
$bbc = "在搜索结果中查找所需内容,查询关键字描红适用于模糊查询";
$bbc1 = "模糊查询";
echo str_ireplace($bbc1,"<font color='green'>".$bbc1."</font>",$bbc);
?>
执行结果如下所示:
3.2. substr_replace() 函数
substr_replace() 函数 用于对指定字符串中的部分字符串进行替换; 语法格式如下:
string substr_replace(string str,string rel,int start,[int length])
substr_replace() 函数的参数如下表
若参数 start 设置为负数,而参数 length 小于或等于 start,那么 length 的值将自动为0; 例子:使用 substr_replace() 函数对指定字符串进行替换
<?php
$bbc = "离离原上草,一岁一枯荣!";
$bbc1 = "枯黄";
echo substr_replace($bbc,$bbc1,18,5);
?>
执行结果如下所示:
4. 格式化字符串
PHP 中,格式化字符串有多种方法,按照格式化的类型可分为字符串的格式化和数字字符串的格式化,数字字符串格式化最为常用;
4.1 number_format() 函数
number_format() 函数 用来将数字字符串格式化; 语法格式如下:
string number_fromat(float number[,int num_places],[string dec_seperator,sting thousands_separator])
number_format() 函数 可有一个、两个或四个参数,但不能是三个参数; 若参数只有 number,将 number 格式化后会舍去小数点后的值,且第三位数字会以逗号(,)隔开; 若有两个参数,将number格式后得到小数点后第 num_decimal_places 位 ,且每三个数字会以逗号隔开; 若有四个参数,将number格式化后会得到小数点第 num_decimal_places 位,dec_seperator 用来替代的小数点(.),thousands_seperator 用来替代隔开的第3位数字的(,); 例子:使用 number_format() 函数对指定数字字符串进行格式化处理
<?php
$bbc = "1312.15";
echo number_format($bbc);
echo "<br>";
echo number_format($bbc,2);
echo "<br>";
$bbc = "131512.6748";
echo number_format($bbc,2,'.','.');
?>
执行结果如下所示:
5. 分割字符串
explode() 函数 可分割字符串;explode() 函数 按指定的规则对字符串进行分割,返回值为数组;
5.1. explode() 函数
语法格式如下:
array explode(string separator,string str[,int limit])
explode() 函数的参数如下表所示
例子:用 explode() 函数实现字符串的分割
<?php
$bbc = "Python 语言@PHP 语言@Java 语言@C 语言";
$bbc1 = explode("@",$bbc);
print_r($bbc1);
?>
执行结果如下所示:
在分割字符串$bbc时,以“@”作为分割标识符进行拆分,分割为 4个数组元素,再使用 print_r() 输出数组中的元素; 默认数组第一个元素的索引为0; 数组的输出,除使用 print_r() 函数 外,还能用 echo 语句 进行输出; 两者的区别是:print_r() 函数输出的数组列;echo 语句输出的是数组中的元素;
<?php
$bbc = "Python 语言@PHP 语言@Java 语言@C 语言";
$bbc1 = explode("@",$bbc);
echo $bbc1[0];
echo $bbc1[1];
echo $bbc1[2];
echo $bbc1[3];
?>
执行结果如下所示:
上述两种输出分割字符串的方式在运行结果的表现形式上稍有不同;
6. 合成字符串
6.1 implode() 函数
implode() 函数 能将数组的内容组合成一个新的字符串 语法格式入下:
string implode(string glue,array poeces)
参数 glue 是字符串类型,用于指定分隔符;参数 pieces 是数组类型,用来指定要被合并的数组; 例子: 用implode() 函数将数组中的内容以@为分隔符进行连接,组成一个新的字符串
<?php
$bbc = "Python 语言@PHP 语言@Java 语言@C 语言@HTML";
$bbc1 = explode("@",$bbc);
$bbc2 = implode("@",$bbc1);
echo $bbc2;
?>
执行结果如下所示:
结束语
若这篇文章有帮到你,给个赞,收个藏,欢迎大家留言评论; 若文章有什么错误,欢迎大家指教。
|