第四章 字符串处理.docx
《第四章 字符串处理.docx》由会员分享,可在线阅读,更多相关《第四章 字符串处理.docx(12页珍藏版)》请在冰豆网上搜索。
第四章字符串处理
4.2PHP字符串处理
PHP的字符串处理功能非常强大,主要包括:
字符串输出
∙echo():
输出一个或多个字符串
∙print():
输出一个字符串
∙printf():
输出格式化字符串
字符串去除
∙trim():
去除字符串首尾空白等特殊符号或指定字符序列
∙ltrim():
去除字符串首空白等特殊符号或指定字符序列
∙rtrim():
去除字符串尾空白等特殊符号或指定字符序列
∙chop():
同rtrim()
字符串连接
∙implode():
使用字符将数组的内容组合成一个字符串
∙join():
同implode()
字符串分割
∙explode():
使用一个字符串分割另一个字符串
∙str_split():
将字符串分割到数组中
字符串获取
∙substr():
从字符串中获取其中的一部分
∙strstr():
查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符
∙subchr():
同strstr()
∙strrchr():
查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
字符串替换
∙substr_replace():
把字符串的一部分替换为另一个字符串
∙str_replace():
使用一个字符串替换字符串中的另一些字符
字符串计算
∙strlen():
取得字符串的长度
∙strpos():
定位字符串第一次出现的位置
∙strrpos():
定位字符串最后一次出现的位置
字符串XHTML格式化显示
∙nl2br():
将换行符n转换成XHTML换行符
∙htmlspecialchars():
把一些特殊字符转换为HTML实体
∙htmlspecialchars_decode():
把一些HTML实体转换为特殊字符,htmlspecialchars()的反函数
字符串存储(转义)
∙addslashes():
对特殊字符加上转义字符。
∙stripslashes():
addslashes()的反函数。
PHP字符串输出
用于字符串输出的函数主要有:
∙echo():
输出一个或多个字符串
∙print():
输出一个字符串
∙printf():
输出格式化字符串
echo()
echo()是指令而不是函数,它没有返回值,可以输出一个或多个字符串。
语法:
voidecho(stringarg1[,string...])
例子:
php
$foo="foobar";
$bar="barbaz";
echo$foo,$bar;//输出"foobarbarbaz"
echo"
";
echo$foo[3];//输出第4个字符"b"
echo"
";
echo"foois$foo";//输出"fooisfoobar"
echo"
";
echo'foois$foo';//输出"foois$foo"
?
>
说明
∙双引号内的变量会被解释,而单引号内的变量则原样输出,参考《PHP数据类型-字符串(string)类型》。
∙字符串计算是从0开始计数
print()
print()用于输出一个字符串。
print()是函数,返回一个整型,但只能有一个参数,其用法同echo,但不能输出数组和对象。
语法:
intprint(stringarg)
printf()
printf()用于格式化输出字符串,返回一个整型。
语法:
intprintf(stringformat,arg1,arg2,...)
format为字符串以及变量的格式化方式,arg1为插入第一个%符号处的参数,agr2等以此类推。
格式化方式说明:
格式化方式
说明
%d
十进制有符号整数
%u
十进制无符号整数
%f
浮点数
%s
字符串
%c
单个字符
%p
指针的值
%e
指数形式的浮点数
%x/%X
无符号以小/大写十六进制表示的整数
%o
无符号以八进制表示的整数
%g
自动选择合适的表示法
例子:
php
$str="This";
$number=31;
printf("%smonthhas%udays",$str,$number);//输出Thismonthhas31days
?
>
PHP字符串去除trim、ltrim与rtrim函数
PHP字符串去除
用于去除字符串首尾空白等特殊符号或指定的字符。
相关函数如下:
∙trim():
去除字符串首尾空白等特殊符号或指定字符序列
∙ltrim():
去除字符串首空白等特殊符号或指定字符序列
∙rtrim():
去除字符串尾空白等特殊符号或指定字符序列
∙chop():
同rtrim()
trim()
去除字符串首尾空白等特殊符号或指定字符序列。
语法:
stringtrim(stringstr[,charlist])
当设定字符序列charlist参数时,trim()函数将去除字符串首尾的这些字符,否则trim()函数将去除字符串首尾的以下这些特殊字符:
字符
说明
空格
t
tab键
n
换行符
r
acarriagereturn
空字符
x0B
averticaltab
例子:
php
$text="HelloWorld";
$trimmed=trim($text);
echo$trimmed;//输出"HelloWorld"
echo"
";
echotrim($trimmed,"Hdle");//输出"oWor"
echo"
";
echotrim($text,"Hdle");//输出"oWorld"
?
>
从这个例子可以看出,trim()函数将不会去除非首尾的charlist。
ltrim()
去除字符串首的特殊符号或指定字符序列,用法同trim()。
语法:
stringltrim(stringstr[,charlist])
rtrim()
去除字符串尾的特殊符号或指定字符序列,用法同trim()。
语法:
stringrrim(stringstr[,charlist])
PHPimplode函数:
将数组元素组合为字符串
PHPimplode()
implode()函数用于将数组元素组合为一个字符串,并返回该字符串。
语法:
stringimplode(stringglue,arrayarray)
参数说明:
参数
说明
Glue(胶水)
连接数组元素的字符
array
需要组合为字符串的数组
连接符为^的例子:
php
$array=array('姓名','电话','电子邮箱');
$char=implode("^",$array);
echo$char;
?
>
浏览器输出:
姓名^电话^电子邮箱
可以使用空格作为连接符:
php
$char=implode("",$array);
?
>
提示
∙根据实际情况,可以选择空格作为连接符或者特殊符号作为连接符以便后续的字符串处理操作。
∙连接符参数glue默认是可以为空的,但为了向后兼容,推荐仍然使用该参数。
∙本函数可安全用于二进制对象。
join()
join()为implode()的别名函数。
implode()函数的反函数为explode():
使用一个分割符号分割一个字符串并组成数组。
PHP字符串分割explode与str_split函数
PHP字符串分割
用于分割字符串。
相关函数如下:
∙explode():
使用一个字符串分割另一个字符串
∙str_split():
将字符串分割到数组中
explode()
本函数为implode()的反函数,使用一个字符串分割另一个字符串,返回一个数组。
语法:
arrayexplode(stringseparator,stringstring[,intlimit])
参数说明:
参数
说明
separator
分割标志
string
需要分割的字符串
limit
可选,表示返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分,支持负数。
例子:
php
$str='one|two|three|four';
print_r(explode('|',$str));
print_r(explode('|',$str,2));
//负数的limit(自PHP5.1起)
print_r(explode('|',$str,-1));
?
>
输出结果如下:
Array
(
[0]=>one
[1]=>two
[2]=>three
[3]=>four
)
Array
(
[0]=>one
[1]=>two|three|four
)
Array
(
[0]=>one
[1]=>two
[2]=>three
)
str_split()
str_split()将字符串分割为一个数组,成功返回一个数组。
语法:
arraystr_split(stringstring[,intlength])
参数说明:
参数
说明
string
需要分割的字符串
length
可选,表示每个分割单位的长度,不可小于1
例子:
php
$str='onetwothree';
$arr1=str_split($str);
$arr2=str_split($str,3);
print_r($arr1);
print_r($arr2);
?
>
输出结果如下:
Array
(
[0]=>o
[1]=>n
[2]=>e
[3]=>
[4]=>t
[5]=>w
[6]=>o
[7]=>
[8]=>t
[9]=>h
[10]=>r
[11]=>e
[12]=>e
)
Array
(
[0]=>one
[1]=>tw
[2]=>ot
[3]=>hre
[4]=>e
)
PHP字符串获取substr与strstr函数
PHP字符串获取
用于从字符串中获取指定字符串。
相关函数如下:
∙substr():
从字符串中获取其中的一部分
∙strstr():
查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符
∙subchr():
同strstr()
strrchr():
查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
substr()
substr()函数用于从字符串中获取其中的一部分,返回一个字符串。
语法:
stringsubstr(stringstring,intstart[,intlength])
参数说明如下:
参数
说明
string
要处理的字符串
start
字符串开始位置,起始位置为0,为负则从字符串结尾的指定位置开始
length
可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回
例子:
php
echosubstr('abcdef',1);//输出bcdef
echosubstr('abcdef',1,2);//输出bc
echosubstr('abcdef',-3,2);//输出de
echosubstr('abcdef',1,-2);//输出bcd
?
>
提示
如果start是负数且length小于等于start,则length为0。
strstr()
查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符,如果没找到则返回FALSE。
语法:
stringstrstr(stringstring,stringneedle)
参数说明如下:
参数
说明
string
要处理的字符串
needle
要查找的字符串,如果是数字,则搜索匹配数字ASCII值的字符
例子:
php
$email='user@';
$domain=strstr($email,'@');
echo$domain;//输出@
?
>
提示
该函数对大小写敏感。
如需进行大小写不敏感的查找,请使用stristr()。
strchr()
同strstr()。
strrchr()
查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符,如果没找到则返回FALSE。
语法:
stringstrrchr(stringstring,stringneedle)
该函数行为同strstr()函数,参数意义可参见上面strstr()函数参数说明。
例子:
php
$str="AAA|BBB|CCC";
echostrrchr($str,"|");
?
>
运行例子,输出:
|CCC
结合substr()函数便可以实现截取某个最后出现的字符后面的所有内容这一功能:
php
$str="AAA|BBB|CCC";
echosubstr(strrchr($str,"|"),1);
?
>