(1)strcmp($str1,$str2)?//比较两个字符串是否相等,当结果为0时表示相等,为1时表示第一个字符串大于第二个字符串, 为-1是第一个字符串小于第二个字符串(这是大于和小于只是位置上的比较,在ascii码表中后面的字符大于前面的字符)1/2 strcmp($str1,$str2)比较两个字符串是否相等3@paramstring$str1第一个字符 串4@paramstring$str2第二个字符串5/6$str1=''hell'';7$str2=''e llo'';8var_dump(strcmp($str1,$str2));//输出1,因为两个字符串的首字母不同,比较首字母 ,h的位置在e后面,所以h比e大(2)strncmp($str1,$str2,$length);//比较两个字符串截取指定 长度的子串1/2strncmp($str,$str2,$len)比较两个字符串从开头到指定长度的子串3 @paramstring$str1第一个字符串4@paramstring$str2第二个字符串5@pa ramint$len要截取的开头6/7$str3=''mypleasure!'';8$str4=''myboo k'';9var_dump(strncmp($str3,$str4,2));//输出0,因为两个字符串截取两个长度都是my相 关函数strcasecmp()比较两个字符串时不区分大小写,strnatcmp(),strnatcasecmp(),strncas ecmp()和上述两个函数相似,而且不是很常用,在此不再赘述2、字符串查找(1)strstr($str,$need,bool$ return_before=false)查找字符串中从$need开始到结尾的字符串<=>和strchr是同义函数1/ 2strstr($str,$need,$return_before=false)===strchr3 @paramstring$str要操作的字符串4@paramstring$need要查找的字符串5 @bool$return_before是否返回$need在$str中首次出现之前的字符串6@descriptio n:返回$need在$str中首次出现的开始到字符串结尾的那段字符串7相关函数:stristr()不区分大小写,8 /9$email=''yimengshixin@yeah.net'';10$email_suffix=strstr($e mail,''@'');//输出@yeah.net11$domain=trim($email_suffix,''@'');12v ar_dump($domain);//输出yeah.net13$username=strstr($email,''@'',t rue);14var_dump($username);//输出yimengshixin(2)strrchr($str,$ne ed)?在字符串$str中查找从最后一次出现字符$need开始到字符串结尾的子串/strrchr($str,$nee d)@paramstring$str要操作的字符串@paramstring$need要查找的字符(如果是一 个字符串,就使用字符串的第一个字符)@description:返回$need在$str最后一次出现的位置开始到字符串结尾的那 段字符串/$url=''http://www.test.com/news/detail/2012/11/26/9778. html'';$baseName=strrchr($url,''/'');//输出:/9778.htmlechotrim( $baseName,''/'');//输出:9778.html(3)strpos($str,$need)在字符串$str中查找 $need首次出现的位置,返回这个位置值=>不区分大小写时用stripos()(4)strrpos($str,$need) 在字符串$str中查找$need最后一次出现的位置,返回这个位置=>不区分大小写时用strripos()1/2 strpos($str,$need[,int$offset])3@paramstring$str要操作的字符 串4@paramstring$need要被搜索的字符5@paramint$offset搜索的起始位 置(即字符串哪个字符开始算起)6@description:搜索$need在$str中首次出现的位置7相关函数: stripos()不区分大小写,strrpos()最后一次出现的位置8/9$path=''var/cache/tpl/ 20121126.php'';10$root_location=strpos($path,''/'');11var_dump( $root_location);//输出312var_dump(substr($path,0,$root_location) );//输出var13$filename_location=strrpos($path,''/'');14var_dump( $filename_location);//输出1315var_dump(substr($path,0,$filename_ location));//输出var/cache/tpl16var_dump(substr($path,$filename_ location,strlen($path)));//输出/20121126.php(5)strpbrk($str,$ch arlist)查找字符集$charlist的任意一个字符在$str首次出现的位置开始到结尾的子串1/2strpbr k($str,$charlist)3@paramstring$str要操作字符串4@paramstrin g$charlist要查找的字符集5@description:在$str中查找$charlist中任意一个字符,返回指 定字符第一次出现的位置开始的剩余部分6/7$string=''Wehavenothingtodo!'';8$nee d=''ahvt'';9var_dump(strpbrk($string,$need));//输出havenothing todo,因为在字符串$string中,h出现的位置在a前3、字符串的截取与转化(1)substr($str,$start, $length)?截取字符串从$start开始截取$length个字符串形成的子串1/2substr($str, $start,$length)3@paramstring$str要截取的字符串4@paramint$ start起始位置5@paramint$length截取的长度6@description:截取字符串$ str中从start位置开始截取$length个长度7/8$sStr=''http://bbs.test.com'';9v ar_dump(substr($sStr,0,4));//输出http扩展:多字节字符串的截取(如汉字)mb_substr ()用法与substr()类似mb_substr($str,$start,$length,$charset)1/2 mb_substr($str,$start,$length,$charset)截取多字节的字符串和substr()用 法一样3@paramstring$charset编码类型4/5$var=''中国人民abc'';6var_d ump(mb_substr($var,0,5,''utf-8''));?(2)explode($sep,$str)将字符串通过分 隔符转化为数组1/2explode($sep,$str)通过一个分隔符将一个字符串转化为一个数组3@pa ramstring$sep分隔符4@paramstring$str要分隔的字符5/6$dir=''va r/www/cache/tpl'';7//输出:array0=>string''var''(length=3)1=>st ring''www''(length=3)2=>string''cache''(length=5)3=>string'' tpl''(length=3)8var_dump(explode(''/'',$dir));(3)impolde($sep, $str)将数组通过分隔符转化为字符串<=>join1/2implode($sep,$array)将数 组通过分隔符连接成一个字符串3@paramstring$sep分隔符4@paramstring$st r要分隔的字符56/7$dirArray=array(''http:/'',''bbs.test.com'', ''index.php'',''news'',''detail'',''499'',''page'',''2.html'');8//输出:http: //bbs.test.com/index.php/news/detail/499/page/2.html9var_dump(i mplode(''/'',$dirArray));10var_dump(join(''/'',array(''www'',''var''))) ;//输出www/var(4)str_split($str,$length)将字符串根据指定的长度分隔成一个数组(处理汉字时 请注意编码,编码不同,所占字符长度也不同)1/2str_split($str,$length)根据长度将字符串分 割成数组3@paramstring$str要分割的字符串4@paramint$length要分割的长度 5/6$split_str=''刘大,牛二,张三,李四,王五,朱六,廖七,周八,肖九'';7var_dump(str_sp lit($split_str,7));//输出:array(0=>''刘大'',1=>''牛二''……)84、字符串替换、填充等 (1)str_replace($search,$replace,$str);将字符串中$search部分用$replace来 替换1/2str_replace($search,$replace,$str)3@paramstrin g$search要被替换的字符串4@paramstring$replace替换后的字符串5@param string$str要操作的字符串6/7$bad=''badman'';8var_dump(str_replace (''bad'',''good'',$bad));//输出goodman(2)substr_replace($str,$repl ace,$start,$length)在字符串$str副本中从$start位置开始截取$length个字符形成的字符串,并将 这段字符串替换成指定字符串返回1/2substr_replace($str,$replace,$start, $length)截取$str副本中从$start开始截取$length个字符并替换为$replace3@param string$str要操作的字符串4@paramstring$replace替换后的字符串5@par amint$start开始位置6@paramint$length长度7/8$old=''hell ojavascript!'';9var_dump(substr_replace($old,''php'',6,strlen( $old)));//输出hellophp!10var_dump($old);//输出hellojavascript!没有改变 11(3)str_repeat($str,$times);将字符串$str重复$times次形成新的字符串1/2 str_repeat($str,$times)3@paramstring$str要重复的字符串4@par amint$times重复的次数5/6var_dump(str_repeat(''##'',6));//输出:###### ######(4)str_pad($str,$pad_length,$pad_str,$pad_type)字符串填充1 /2str_pad($str,$pad_length,$pad_str,$pad_type=STR_P AD_RIGHT)3@paramstring$str被操作的字符串4@paramint$pad_le ngth填充后的长度5@paramstring$pad_str用于填充的内容6@paramconst $pad_type填充方向,分别有这向个常量:STR_PAD_LEFT(从左边填充),STR_PAD_RIGHT(从右边填充 ),STR_PAD_BOTH(两边填充)7/8var_dump(str_pad(''abc'',10,''''));//输出 abc9var_dump(str_pad(''abc'',7,'''',STR_PAD_LEFT));//输出 abc10var_dump(str_pad(''abc'',6,'''',STR_PAD_BOTH));//输出ab c5、与ASCII相关的字符串操作(1)ord(string$char)返回字符串对应的ASCII码值(2)chr(in t$ascii)返回ascii值对应的字符1/2intord(string$char)3/4var_du mp(ord(''A''));//输出6556/7stringchr(int$ascii)8/9var_du mp(chr(72));//输出H6、与html转义有关的(1)strip_tags($str,$remain_tags)? 删除html或xml标签(其实只要是<>都会被过滤掉)(2)nl2br($str)在新行前加入 换行(3)wordw rap($str,$length)自动换行(强制换行)?1/2strip_tags($str,$remai n_tags)3@paramwww.mntuku.cn4@paramstring$remain_tags 要留的tag5/6$html=''标题更多/www.test.com">链接'';7var_dump(strip_tags($html)); //输出:标题更多链接8var_dump(strip_tags($html,''''));//输出:标题更 多链接910/11nl2br($str)新行前添加 12/13$nl=''14ve rygood!'';15var_dump(nl2br($nl));//输出:'' verygood!1617/ 18wordwrap($str,$length)强制换行(自动换行)19/20$line=''0123456 789abcdefghijklmnopqrstuvwxyz'';21$newText=wordwrap($line,10, '' '');22var_dump($newText);(4)htmlspecialchars($str,$style) 把几个预定义的字符转义成实体需要转义的字符:双引号",单引号'',大于号>,小于号<,还有&$style有三个常量可供选择:E NT_COMPAT(只转义双引号,默认),ENT_QUOTES(双引号和单引号都转义),ENT_NOQUOTES(双引号和单引号都 不转义)1/2htmlspecialchars($str,$style,$charset)3@pa ramstring$str要操作的字符串(要实体化)4@paramconst$style操作方式:5/ 6$var1=''youarea"bad"man!&me?'';//输出:<h3>you area"bad"man!<h3>&me?7$var2="It''s mypleasure!&me?";//输出:<h3>It''smypleasure!</h3>&me?8var_dump(htmlspecialchars($var1));9var_dump(htmlspecialchars($var2));10var_dump(htmlspecialchars($var2,ENT_QUOTES));//输出:<h3>It'smypleasure!</h3>&me?(5)htmlentities($str,$flag=ENT_COMPAT,$charset)将更多的字符转义成html实体(6)addslashes($str)和stripslashes($str)为单引号和双引号添加转义\7、对字符串进行计算(有的也理解为加密)(1)cypt($str)计算单字符串散列(2)md5($str)进行md5计算8、其他未分类(1)strrev($str)反转字符串如:$a=''abc'';var_dump(strrev($a));?//输出:cba |
|