您好,欢迎访问三七文档
PHP字符串的处理1、字符串的处理本讲知识点字符串的连接•字符串可以使用字符串连接符(.)来连接•常见的用途是建立大块的HTML字串代码,赋值号(=)连接符(.)可以被简写合并为(.=)符号在字符串中使用变量•这个功能让你无须使用连接符号来粘和大量的简单字符串•单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:$foo=2;echofoois$foo;//打印结果:foois2echo'foois$foo';//打印结果:foois$fooechofoois$foo\n;//打印结果:foois2(同时换行)echo'foois$foo\n';//打印结果:foois$foo\n在字符串中使用变量•为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:echo'value='.$a[$i][$j];•还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:echo“value={$a[$i][$j]}”//打印二维数组$a的某个元素•这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:$var=3;echovalue={$var};//打印结果value=3echovalue=\{$var};//打印结果value={3}字符串的长度•长度PHP提供strlen函数来计算字符串的长度:$str=test;echostrlen($str);//将输出4•有点奇怪的是strlen将中日等汉字以及全角字符都当作两个或四个长度计算。好在mbstring或iconv两个函数可以帮助解决这个问题,比如:$len=iconv_strlen($str,GBK);$len=mb_strlen($str,GBK);4、字符串的分隔与连接•PHP允许你把一个字符串按照一个分隔符进行分隔成一个数组,或者将一个数组组合成一个字符串。看下面的例子:$str=iloveiwind;$array=explode(,$str);上面的explode函数,就把$str字符串按空格字符进行分隔,结果返回一个数组$array:array(i,love,iwind).与explode函数有类似功能的有:preg_split(),spliti(),split()等函数。4、字符串的分隔与连接•与此相反的,implode和join则能把一个数组结合成一个字符串,他们是具有完全相同功能的函数。$array=array(i,love,iwind);$str=implode(,$array);例中的implode函数将数组$array的每个元素用空格字符进行连接,返回一个字符串$str:iloveiwind.5、字符串的裁剪•一个字符串首和尾,可能不是你想要的部分,就可以用•trim去除一个字符串的两端空格,•rtrim去除一个字符串的尾部空格,•ltrim去除一个字符串的首部空格等函数echotrim(“iloveiwind”);//将得到“iloveiwind”echortrim(“iloveiwind”);//将得到“iloveiwind”echoltrim(“iloveiwind”);//将得到“iloveiwind”其实这三个参数不仅可以去除字符串首尾的空格,还可以去除它们的第二个参数指定的字符,如:echotrim(“,1,2,3,4,”,“,”);//将得到1,2,3,4两端的“,”号被裁掉了。•有时还会看到有人使用chop这个函数,其实它是rtrim的同义函数6、字符串大小写转换•对于英文字母来说,可以用strtoupper,strtolower将其转变成大写或小写。echostrtoupper(iloveiwind);//将得到ILOVEIWINDechostrtolower(ILOVEIWIND);//将得到iloveiwind字符串的替换•替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满足新的要求。PHP里通常用str_replace(要替换的内容,要取代原内容的字符串,原字符串)进行替换。echostr_replace(iwind,kiki,iloveiwind,iwindsaid);//将输出ilovekiki,kikisaid即将原字符串中的所有iwind都替换成了kiki.字符串的替换•str_replace是大小写敏感的,所以对你不能设想用str_replace(Iwind,kiki,...)替换原字符串中的iwind.•格式:•[str_replace(要替换的旧内容,要取代原内容的新字符,$被替换内容的变量名)][str_replace(array('旧1','旧2','旧3'),array('新1','新2','新3'),$被替换内容的变量名)][str_replace(array('旧1','旧2','旧3'),'新内容',$被替换内容的变量名)]字符串的替换•echostr_replace(array(iwind,kiki),array(gentleman,ladies”,”sfs”),ilovekiki,iwindsaid);输出iloveladies,gentlemansaid。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。字符串的替换•此外,PHP还提供了substr_replace,实现替换一部分的字符串。语法如下:substr_replace(原字符串,要替代的字符串,开始替换的位置[,替换的长度])其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。echosubstr_replace(abcdefgh,DEF,3);//将输出abcDEFechosubstr_replace(abcdefgh,DEF,3,2);//将输出abcDEFfgh第一个例子中,从第三个位置(即d)开始替换,从而把defgh都替换成了“DEF”第二个例子中,也是从第三个位置(即d)开始替换,但只能替换2个长度,即到e,所以就把de替换成了DEF.字符串的替换•PHP还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换字符串的查找与匹配•PHP里用于查找或者匹配或者定位的函数非常多,它们都有不同的意义•strstr,stristr.后者与前者的功能,返回值都一样,只是不区分大小写。strstr(母字符串,子字符串)用来查找子字符串在母字符串中第一次出现的位置,并返回母字符串中从子字符串开始到母字符串结束的部分。比如echostrstr(abcdefg,e);//将输出efg如果找不到子字符串,则返回空。因为可以用来判断一个字符串中是否含有另外一个字符串:字符串的查找与匹配•$needle=iwind;$str=iloveiwind;if(strstr($str,$needle)){echo里面有iwind;}else{echo里面没有iwind;}将会输出里面有iwind
本文标题:PHP字符串的处理
链接地址:https://www.777doc.com/doc-2886808 .html