PHP常用的字符串函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHP常⽤的字符串函数
PHP ⼯作中常⽤的字符串函数
mb_xxxx和xxxx函数的却别:
mb_xxxx和xxxxd函数不同的是,mb_xxxxx中的$str 中字母字符的检测是根据字符的 Unicode 属性。
因此函数的⾏为不会受语⾔设置的影响,能够转换任意具有“字母”属性的字符。
所以mb_xxxx可以⽐较好的处理中⽂。
⼀、关于字符串⼤⼩写转换的函数
1、strtoupper($string):将字符串$string中的字母转换成⼤写,并将转化后的字符串返回;
$str = '这是⼀个string';
echo strtoupper($str);
//输⼊结果:
//这是⼀个STRING
2、mb_strtoupper():与 strtoupper() 函数类似,同样可以将字符串中的字母转化为⼤写,并且 mb_strtoupper() 函数还可以设置参数的字符编码
mb_strtoupper($str [, $encoding = mb_internal_encoding()])
//$str 是需要转化的字符串,$encoding 是⼀个可选参数,⽤来设置参数的字符编码。
3、strtolower($string):将字符串$string中的字母转换成⼩写,并将转化后的字符串返回;
$str = '这是⼀个STRing';
echo strtolower($str);
//输出结果:
//这是⼀个string
4、mb_strtolower():与strtolower()函数类似,同样可以讲字符串中的字母转化为⼩写,并且还可设置参数的字符编码
mb_strtolower($str [, $encoding = mb_internal_encoding()])
//$str 是需要转化的字符串,$encoding 是⼀个可选参数,⽤来设置参数的字符编码。
5、ucfirst($string):将字符串$string中的第⼀个字母转化成⼤写;
$str = '这是⼀个string';
$str1 = 'hello world!';
echo ucfirst($str);
echo '<br/>';
echo ucfirst($str1);
//输出结果:
//这是⼀个string
//Hello world!
6、lcfirst($string):将字符串$string中的第⼀个字母转化成⼩写;
$str = '这是⼀个string';
$str1 = 'HELLO world!';
echo lcfirst($str);
echo '<br/>';
echo lcfirst($str1);
//输出结果:
//这是⼀个string
//hELLO world!
7、ucwords():将字符串中的每个单词的⾸字母转换成⼤写;
ucwords($str [, $delimiters = "\t\r\n\f\v" ])
//$str 为需要转化的字符串;$delimiters 为可选参数,⽤来表⽰单词分隔符,默认是空格符、制表符、换⾏符、回车符、⽔平线以及竖线。
$str = 'hello world!';
$str1 = 'HELLO WORLD!';
$str2 = '';
echo ucwords($str);
echo '<br/>';
echo ucwords($str1);
echo '<br/>';
echo ucwords($str2);
echo '<br/>';
echo ucwords($str2,'.');
//输出结果:
//Hello World!
//HELLO WORLD!
//
//
8、mb_convert_case():可以对字符串进⾏⼤⼩写转换
mb_convert_case($str, $mode [, $encoding = mb_internal_encoding()])
//$str 是需要转换的字符串;
//$mode 是转换模式,可以是 MB_CASE_UPPER、 MB_CASE_LOWER 和 MB_CASE_TITLE 的其中⼀个;
//MB_CASE_UPPER:将字符串转化成⼤写
//MB_CASE_UPPER:将字符串转化成⼩写
//MB_CASE_TITLE:将⾸字母⼤写,其他字母⼩写
//$encoding 是参数的字符编码,可以省略。
$str = 'hello world!';
$str1 = 'HELLO WORLD!';
$str2 = '';
echo mb_convert_case($str,MB_CASE_UPPER);echo '<br/>';
echo mb_convert_case($str1,MB_CASE_LOWER);
echo '<br/>';
echo mb_convert_case($str2,MB_CASE_TITLE);
echo '<br/>';
echo mb_convert_case($str1,MB_CASE_TITLE);
echo '<br/>';
echo mb_convert_case($str,MB_CASE_TITLE);
//输出结果:
//HELLO WORLD!
//hello world!
//
//Hello World!
//Hello World!
和 strtolower()、strtoupper() 函数相⽐,mb_convert_case() 函数⼤⼩写转换的执⾏根据 Unicode 字符属性的基础。
因此 mb_convert_case()函数的⾏为不受语⾔环境(locale)设置的影响,能够转换任意具有“字母”属性的字符。
⼆、关于字符串查找的函数
1、strpos():⽤来查找字符串⾸次出现的位置(区分⼤⼩写);
mixed strpos ( string$haystack , mixed$needle [, int $offset = 0 ] )
参数说明:
·haystack:在该字符串中查找;
·needle:needle 可以是⼀个单字符或者多字符的字符串。
如果 needle 不是⼀个字符串,那么它将被转换为整型并被视为字符顺序值
·offset:偏移量。
可选的 offset 参数允许你指定从 haystack 中的哪个字符开始查找,返回的位置数字值仍然相对于 haystack 的起始位置
返回:返回 needle 存在于 haystack 字符串开始的位置(独⽴于偏移量)
注:
·字符串位置起始于 0,⽽不是 1;
·如果未发现needle,则返回false;
⚠ 此函数的偏移量不能是负数!
eg.
$str = 'This is a string';
echo strpos($str,'s'); //输出:3
echo strpos($str,'s',4); //输出:6
echo strpos($str,'is'); //输出:2
echo strpos($str,' s'); //输出:9
echo strpos($str,'T'); //输出:0
echo strpos($str,'t'); //输出:11
2、stripos():和strpos()函数类似,⽤来查找字符串⾸次出现的位置;不同的是它不区分⼤⼩写。
语法和strpos()⼀样
⚠ 此函数的偏移量不能是负数!
eg.
$str = 'This is a string';
echo stripos($str, 's'); //输出:3
echo stripos($str,'T'); //输出:0
echo stripos($str,'t'); //输出:0
3、strrpos():⽤来计算指定字符串在⽬标字符串中最后⼀次出现的位置(区分⼤⼩写)
语法和strpos()⼀样
⚠ 如果是负数的偏移量,将会导致查找在字符串结尾处开始的计数位置处结束。
eg.
$str = 'This is a string';
echo strrpos($str,'g'); //输出:15
echo strrpos($str,'g',-1);//输出:15
echo strrpos($str,'s'); //输出:10
echo strrpos($str,'s',-7);//输出:6
echo strrpos($str,'i'); //输出:13
echo strrpos($str,'i',-4);//输出:5
4、strripos():与strrpos()函数类似,⽤来查找字符串在⽬标字符串中最后⼀次出现的位置,不同的是它不区分⼤⼩写。
语法和strpos()⼀样。
⚠ 负数偏移量将使得查找从字符串的起始位置开始,到 offset 位置为⽌。
eg.
$str = 'This is a string';
echo strrpos($str,'T'); //输出:0
echo '<br/>';
echo strrpos($str,'t'); // 输出:11
echo strripos($str,'T'); //输出:11
echo '<br/>';
echo strripos($str,'t'); //输出:11
三、关于字符串替换的函数
1、str_replace():使⽤新的字符串替换原来字符串中指定的字符串(区分⼤⼩写)
mixed str_ireplace ( mixed$search , mixed$replace , mixed$subject [, int &$count ] )
参数说明:
·search: 原来字符串或数组中要替换的字符串
·replace:替换search新的字符串
·subject:原来字符串
·count:表⽰执⾏替换的次数
返回:返回⼀个字符串或者数组
eg.
$str = 'This is a string';
$search = 'This';
$search1 = 'this';
$replace = 'That';
echo str_replace($search, $replace, $str); // 输出:That is a string
echo str_replace($search1, $replace, $str); //输出:This is a string
2、str_ireplace():同str_replace()⽤法⼀样,区别是它不区分⼤⼩写;
$str = 'This is a string';
$search = 'This';
$search1 = 'this';
$replace = 'That';
echo str_ireplace($search, $replace, $str); //输出:That is a string
echo str_ireplace($search1, $replace, $str); //输出:That is a string
$str = 'This is a string';
$search = 'This';
$search1 = 'this';
$search2 = 's';
$replace = 'That';
echo str_ireplace($search2, 'A', $str); //输出:ThiA iA a Atring
echo str_replace($search2, 'A', $str,$count);//输出:ThiA iA a Atring
echo$count;//输出:3
3、substr_replace():替换字符串的⼦串
mixed substr_replace ( mixed$string , mixed$replacement , mixed$start [, mixed$length ] )
substr_replace() 在字符串string的副本中将由 start 和可选的 length 参数限定的⼦字符串使⽤ replacement 进⾏替换。
注:
如果 start 为正数,替换将从 string 的 start 位置开始。
如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。
如果设定了 length 参数并且为正数,就表⽰ string 中被替换的⼦字符串的长度。
如果设定为负数,就表⽰待替换的⼦字符串结尾处距离string 末端的字符个数。
如果没有提供此参数,那么默认为 strlen(string)(字符串的长度)。
当然,如果 length 为 0,那么这个函数的功能为将 replacement 插⼊ string 的 start 位置处。
$str = 'Hello world,hello world';
$replace = 'Hi';
echo substr_replace($str, $replace, 0); //输出:Hi
echo substr_replace($str, $replace, 0,2); //输出:Hillo world,hello world
echo substr_replace($str, $replace, 0,5); //输出:Hi world,hello world
echo substr_replace($str, $replace, 0,0); //输出:HiHello world,hello world
四、有关字符串截取的函数
1、substr():从字符串的指定位置截取⼀定长度的字符串;这段被截取的字符可称为“⼦串”或者“⼦字符串”;
substr($string, $start [, $length])
参数说明如下:
$string:需要截取的字符串,该字符串⾄少含有⼀个字符;
$start:截取字符串的起始位置;
如果$start是⾮负数,那么字符串将从$string的第$start个字符处开始截取,$start从 0 开始计算。
如果$start是负数,那么字符串将从$string结尾处向前数第$start个字符开始,$start从 -1 开始计算。
例如在字符串“abcdef”中,在 -1 位置的字符是“f”;
如果$string的长度⼩于$start,将返回FALSE。
$length:可选参数,表⽰截取字符串的长度。
如果$length为正数,那么字符串将从$start位置向后截取最多$length个字符;
如果$length为负数,那么$string末尾的$length个字符将会被省略(若$start是负数则从字符串尾部算起);
如果$length的值为 0,FALSE或NULL,那么将返回⼀个空字符串;
如果没有提供$length,那么返回的⼦字符串将从$start位置开始直到字符串的结尾。
eg.
$str = 'Hello world,hello world';
$replace = 'Hi';
echo substr($str,0); //输出:Hello world,hello world
echo '<br>';
echo substr($str,1);// 输出:Hello world,hello world
echo '<br>';
echo substr($str,0,1);//输出:H
echo '<br>';
echo substr($str,-1,1);//输出:d
echo '<br>';
echo substr($str, 1,-1);//输出:ello world,hello worl
echo '<br>';
echo substr($str, -5,-1);//输出:worl
echo '<br>';
echo substr($str, -5,-4);//输出:w
五、有关去除字符串两边的空格的函数
1、trim():去除字符串两边的空格或其他字符;
trim($str [, $character_mask = " \t\n\r\0\x0B"])
参数说明:
·$str:待处理的字符串;
·$character_mask:可选参数,⽤于指定所有要去除的字符,也可以使⽤“..”列出⼀个字符范围。
如果不指定$character_mask参数,trim() 函数将去除下⾯这些字符:
" ":普通空格符;
"\t":制表符;
"\n":换⾏符;
"\r":回车符;
"\0":空字节符;
"\x0B":垂直制表符。
eg.
$str = ' @Hello world,hello world@ ';
var_dump(trim($str)); //输出:string(25) "@Hello world,hello world@"
echo '<br/>';
var_dump(trim($str,'@'));//输出:string(27) " @Hello world,hello world@ "
echo '<br/>';
var_dump(trim($str,' @'));//输出:string(23) "Hello world,hello world"
2、ltrim():去除字符串开头的空⽩字符或者其它指定的字符;同trim()语法⼀样,不同的是,它只能处理左边也就是字符串开头的的字符串;
$str = ' @Hello world,hello world@ ';
var_dump(ltrim($str)); //输出:string(26) "@Hello world,hello world@ "
echo '<br/>';
var_dump(ltrim($str,'@'));//输出:string(27) " @Hello world,hello world@ "
echo '<br/>';
var_dump(ltrim($str,' @'));//输出:string(25) "Hello world,hello world@ "
3、rtrim():去除字符串结尾的空⽩字符或者其他指定的字符;同trim()语法⼀样,不同的是,它只能处理右边也就是字符串结尾的字符串;$str = ' @Hello world,hello world@ ';
var_dump(rtrim($str));//输出:string(26) " @Hello world,hello world@"
echo '<br/>';
var_dump(rtrim($str,'@'));//输出:string(27) " @Hello world,hello world@ "
echo '<br/>';
var_dump(rtrim($str,' @'));//输出:string(25) " @Hello world,hello world"
六、有关字符串长度的函数
1、strlen():计算字符串的长度;
int strlen ( string$str )
参数说明:
$str表⽰被计算的字符串
$str = ' @Hello world,hello world@ ';
$str1 = '这是⼀个string';
var_dump($str); //输出:string(27) " @Hello world,hello world@ "
var_dump($str1);//输出:string(18) "这是⼀个string"
echo strlen($str);//输出:27
echo mb_strlen($str);//输出:27
echo strlen($str1);//输出:18
echo mb_strlen($str1);//输出:10
七、有关字符串转义的函数
1、addslashes():转义字符串,所谓转义,就是在某些特殊字符前⾯加上转义符号\,这些特殊字符包括单引号'、双引号"、反斜线\与空字符NULL。
string addslashes(string$str)
参数说明:
$str表⽰要被转义的字符;
返回:转义后的字符串;
$str = "I'm a beauty";
echo addslashes($str); //输出:I\'m a beauty
2、stripslashes():还原经addslashes()转义过的字符串
string stripslashes(string$str)
参数说明:
$str表⽰经addslashes()转义过的字符串
返回:返回未经转义的字符串
$str = "I'm a beauty";
$str1 = addslashes($str);
echo stripslashes($str1); //输出:I'm a beauty
⼋、有关字符串重复的函数
1、str_repeat():重复⼀个字符串;
string str_repeat(string$str,int $n)
参数说明:
$str表⽰要重复的字符串;
$n重复的次数;
返回:返回str重复n次的字符串
⚠ n必须⼤于0,如果n=0,则返回⼀个空字符串;
$str = "I'm a beauty! <br/>";
echo '重要的事⼉重复3遍:<br/>'.str_repeat($str, 3);
//输出:
重要的事⼉重复3遍:
I'm a beauty!
I'm a beauty!
I'm a beauty!
九、有关随机打乱字符串的函数
1、str_shuffle():随机打乱字符串中的所有字符;
string str_shuffle ( string$str )
参数说明:
$str表⽰未经打乱的字符串
返回:返回顺序打乱的字符串
$str = "I'm a beauty!";
echo str_shuffle($str);
echo '<br/>';
echo str_shuffle($str);
echo '<br/>';
echo str_shuffle($str);
//输出:
me !a'Ituyb a
ey'um baIt!a
! tbeIyam a'u
⼗、有关字符串转换成数组的函数
1、explode():将字符串按照特定的分隔符分割成若⼲个⼦串,并将⾃卸⼦串组成数组返回;
explode($delimiter, $string [, $limit])
参数说明:
·$delimiter:表⽰⽤于分割字符串的分隔符;
·$string:需要分割的字符串;
·$limit:可选参数,可以为空,规定要返回数组元素的数⽬;
·$limit不为空且为正数,则返回的数组最多包含limit个元素,最后⼀个元素包含了string剩下的所有字符;
·$limit不为空且为负数,⾃返回除了最后limit个元素之外的所有元素;
·$limit等于0,则会被当作1;
·$limit为空,则返回所有元素
返回:数组
⚠ 如果$delimiter为空字符串"",程序会提⽰warning,且函数会返回FALSE;
⚠ 如果$delimiter的值在string中找不到且使⽤了负数的$limit,则会返回空的数组,否则返回只有⼀个元素(string)的数组;eg.
$str = "I'm a beauty!";
var_dump(explode(" ", $str));
var_dump(explode(" ", $str,2));
var_dump(explode(" ", $str,-1));
var_dump(explode(" ", $str,0));
var_dump(explode("@", $str));
var_dump(explode("@", $str,-1));
//输出:
array(3) {
[0]=>
string(3) "I'm"
[1]=>
string(1) "a"
[2]=>
string(7) "beauty!"
}
array(2) {
[0]=>
string(3) "I'm"
[1]=>
string(9) "a beauty!"
}
array(2) {
[0]=>
string(3) "I'm"
[1]=>
string(1) "a"
}
array(1) {
[0]=>
string(13) "I'm a beauty!" }
array(1) {
[0]=>
string(13) "I'm a beauty!" }
array(0) {
}。