资源描述:
《php字符串操作入门教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
PHP字符串操作学习教程正像人说话一样,一般有形体(图形界面),有语言(print字符串?),显然字符串能解释更多的东西。PHP提供了大量的字符串操作函数,功能强大,使用也比较简单.以下将简单的讲述它的功能和特性。 弱类型 PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理,如:echosubstr("1234567",1,3);和echosubstr(123456,1,3);是一样的 定义 一般用双引号或单引号标识一个字符串。比如$str="iloveu";$str='iloveu'; 它者两者是有一些区别的。后者将一切单引号的内容都会当作字符处理;前者则不然。比如$test="iwind";$str="ilove$test";$str1='ilove$test';echo$str;//将得到iloveiwindecho$str1;//将得到ilove$test 同样的以下两个例子的行为也不一样的:echo"ilovetest";//将得到iloveest,已经将t视为转义echo'ilovetest';//将得到ilovetest 从而可以简单认为双引号里的内容是经过“解释”过的,单引号的是“所见即所得”的(特殊地,''会被认作一个'')。显而易见,双引号形式的更为灵活一些,当然单引号会适用于一些特殊的场合,这里就不作阐述了。 输出 PHP里的输出最常用的是echo,print.两者都不是真正的函数,而是语言构造,所以调用时不必用双括号(比如echo("test");print("test")).在输出的时候两者都可以实现赋值:echo$str="test";//一方面输出test,一方面把"test"赋给字符串变量$strprint$str="test"; 两者除了名字不一样外,还是有其它区别的。print具有返回值,一直返回1,而echo没有,所以echo比print要快一些:$return=print"test";echo$return;//输出1 也正因为这个原因,print能应用于复合语句中,而echo不能:isset($str)orprint"str变量未定义";//将输出"str变量未定义"isset($str)orecho"str变量未定义";//将提示分析错误echo一次可输出多个字符串,而print则不可以:echo"i","love","iwind";//将输出"iloveiwind"print"i","love","iwind";//将提示错误echo,print还可以输出被称作“文档句法”的字符串,句法如:echo<<<标签名称...字符串内容...标签名称;比如echo<<0),比较的是"b"和"B"strcasecmp用于不区分大小写的字符串比较:echostrcasecmp("abcdd","aBcde");//返回-1(<0),比较的是"d"和"e"strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:echostrncmp("abcdd","aBcde",3);//返回1(>0),比较了abc和aBcstrncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:echostrncasecmp("abcdd","aBcde",3);//返回0,比较了abc和aBc,由于不区分大小写,所以两者是相同的。 还有一种情况是单单比较字符串大小,达不到我们预定的要求,比如照常理10.gif会比5.gif大,但如果应用上面几个函数,就会返回-1,即表示10.gif比5.gif,针对这种情况,PHP提供了两个自然对比的函数strnatcmp,strnatcasecmp:echostrnatcmp("10.gif","5.gif");//返回1(>0)echostrnatcasecmp("10.GIF","5.gif");//返回1(>0) 替换 替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满足新的要求。PHP里通常用str_replace("要替换的内容","要取代原内容的字符串","原字符串")进行替换。echostr_replace("iwind","kiki","iloveiwind,iwindsaid");//将输出"ilovekiki,kikisaid" 即将原字符串中的所有"iwind"都替换成了"kiki".str_replace是大小写敏感的,所以对你不能设想用str_replace("IWIND","kiki",...)替换原字符串中的"iwind".str_replace还可以实现多对一,多对多的替换,但无法实现一对多的替换:echostr_replace(array("iwind","kiki"),"people","ilovekiki,iwindsaid");将会输出ilovepeople,peoplesaid第一个参数中的array("iwind","kiki")都被替换成了"people"echostr_replace(array("iwind","kiki"),array("gentleman","ladies"),"ilovekiki,iwindsaid"); 输出iloveladies,gentlemansaid。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。 与此有些类似的是strtr, 此外,PHP还提供了substr_replace,实现替换一部分的字符串。语法如下:substr_replace(原字符串,要替代的字符串,开始替换的位置[,替换的长度]) 其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。echosubstr_replace("abcdefgh","DEF",3);//将输出"abcDEF"echosubstr_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" HTML相关 1,htmlspecialchars($string) 这是它的最简单用法,将字符串中的一些特殊字符(顾名思义)&,',"<,>转换成它们对应的HTML实体形式:$str="ilovekiki,iwindsaid.";echohtmlspecialchars($str); 将会输出ilovekiki,iwindsaid. 2,htmlentities($string) 将所有能转换成实体形式的字符都转换成实体形式。 3,html_entity_decode($string); PHP4.3.0以后加入的具有与htmlentities($string)相反的功能。 4,nl2br($string) 将字符串中所有换行符转变成+换行符。如:$str="ilovekiki,niwindsaid.";echonl2br($str);将会输出ilovekiki,iwindsaid.