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); // 返回 ''