php中比较复杂但又常用的字符串函数

白昼怎懂夜的黑 提交于 2019-12-02 15:31:02

php系统核心库自带的函数中,字符串比数组函数较为简单,但还是有一些较为复杂但又很常用的函数,比如下面的这些函数

explode()函数

用一个字符串来分割另一个字符串,返回结果是一个数组

explode(字符串型分隔符,目标字符串,设置返回数组元素的上限)

特例1.如果分割符为空字符串,函数返回false

特例2.如果分割符在目标字符串中不出现,且第三个参数为负数,函数返回空数组

 1 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 2 var_dump( explode(" ", $pizza) );
 3 // array(6) {
 4 //     [0] =>
 5 //     string(6) "piece1"
 6 //     [1] =>
 7 //     string(6) "piece2"
 8 //     [2] =>
 9 //     string(6) "piece3"
10 //     [3] =>
11 //     string(6) "piece4"
12 //     [4] =>
13 //     string(6) "piece5"
14 //     [5] =>
15 //     string(6) "piece6"
16 //   }

特例

1 // 特例1
2 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
3 var_dump( explode("", $pizza, -2) );
4 // bool(false)
5 // 特例2
6 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
7 var_dump( explode(",", $pizza, -2) );
8 // array(0) {
9 // }

strpos()函数

查找针字符串在大海字符串中首次出现的位置,返回整型位置,或没找到false

strpos(大海字符串,针字符串,默认为0的查找位置)

大海捞针,其他类型的针会被转成字符串,默认为0的查找位置可以设置为1,2,3等等,php7.1之后这个参数才支持负数,没找到返回false

1 // 忽视位置偏移量之前的字符进行查找
2 $newstring = 'abcdef abcdef';
3 $pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0

除此之外,strrpos ()函数则是 逆向查找首次出现的位置,或者说是 正向查找最后一次出现的位置。

substr()函数

获得目标字符串的子字符串

substr(目标字符串,整型开始位置,整型长度):子字符串或false

 1 // 开始位置为负
 2 $rest = substr("abcdef", -1);    // 返回 "f"
 3 $rest = substr("abcdef", -2);    // 返回 "ef"
 4 $rest = substr("abcdef", -3, 1); // 返回 "d"
 5 
 6 // 截取的长度为负
 7 $rest = substr("abcdef", 0, -1);  // 返回 "abcde"
 8 $rest = substr("abcdef", 2, -1);  // 返回 "cde"
 9 $rest = substr("abcdef", 4, -4);  // 返回 ""
10 $rest = substr("abcdef", -3, -1); // 返回 "de"
11 
12 // 返回false的情况
13 $rest = substr("abcdef", 7, 1); // 返回 false
14 $rest = substr("abcdef", 2, -5); // 返回 false 
15 
16 // 返回空字符串
17 $rest = substr("abcdef", 1, -5); // 返回 '' 
18 $rest = substr("abcdef", 1, 0); // 返回 ''
19 $rest = substr("abcdef", 1, false); // 返回 ''  
20 $rest = substr("abcdef", 1, null); // 返回 '' 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!