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

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

explode()函数

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

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

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

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

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
var_dump( explode(" ", $pizza) );
// array(6) {
//     [0] =>
//     string(6) "piece1"
//     [1] =>
//     string(6) "piece2"
//     [2] =>
//     string(6) "piece3"
//     [3] =>
//     string(6) "piece4"
//     [4] =>
//     string(6) "piece5"
//     [5] =>
//     string(6) "piece6"
//   }

特例

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

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

// 开始位置为负
$rest = substr("abcdef", -1);    // 返回 "f"
$rest = substr("abcdef", -2);    // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"

// 截取的长度为负
$rest = substr("abcdef", 0, -1);  // 返回 "abcde"
$rest = substr("abcdef", 2, -1);  // 返回 "cde"
$rest = substr("abcdef", 4, -4);  // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"

// 返回false的情况
$rest = substr("abcdef", 7, 1); // 返回 false
$rest = substr("abcdef", 2, -5); // 返回 false 

// 返回空字符串
$rest = substr("abcdef", 1, -5); // 返回 ‘‘ 
$rest = substr("abcdef", 1, 0); // 返回 ‘‘
$rest = substr("abcdef", 1, false); // 返回 ‘‘  
$rest = substr("abcdef", 1, null); // 返回 ‘‘

相关推荐