PHP常用字符串的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP常用字符串的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!1.分割与合并implode:echo
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!1.分割与合并implode:echo
文章正文
这篇文章主要为大家详细介绍了PHP常用字符串的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
1.分割与合并implode:echo implode(",", array('lastname', 'email', 'phone'));//数组转成字符串explode:print_r(explode(",", 'lastname,email,phone'));//字符串转成数组split:print_r(split("[/.-]","2008-9.12"));//以/或.或-任一符号切成数组str_split:print_r(str_split("Hello Friend",1));//将字符串切开preg_split://正则分割//$ops = preg_split("{[+*/-]}","3+5*9/2");//print_r($ops);//返回:Array ( [0] => 3 [1] => 5 [2] => 9 [3] => 2 )http_build_query://生成 url-encoded 之后的请求字符串$data = array('localhost'=>'aa','user'=>'bb','password'=>'cc');echo http_build_query($data);//返回:localhost=aa&user=bb&password=ccstrtok://将字符串切成小段$string = "This is\tan example\nstring";echo strtok($string,"\n\t");//返回:This isecho '<hr>';echo strtok("\n\t"); //当第二次返回:an exampleecho '<hr>';echo strtok("\n\t"); //当第三次返回:string2.查找和替换字符串中很多是 r:取最后的,i:不区分大小写的echo $pos = strpos('abcdef abcdaef', 'a'); // 字母a第一次出现的位置,区分大小写echo $pos = strrpos('abcdef abcdeaf', 'a'); // 字母a最后一次出现的位置,区分大小写stripos:不区分大小写strripos:不区分大小写echo strstr('user@exa@mple.com', '@');//返回:@exa@mple.comstristr:不区分大小写echo strchr('user@exa@mple.com', '@');//返回:@exa@mple.comstrrchr:则返回:@mple.com,preg_grep://返回与模式匹配的数组单元$food = preg_grep("/^p/",array("apple","orange","pip","banana"));print_r($food); //返回:Array ( [2] => pip )strtr://以指定的数组替换找到的字符串$arr = array("www"=>"ftp","yahoo"=>"baidu");echo strtr("www.yahoo.com",$arr);//返回:ftp.baidu.comecho strtr("www.yahoo.com","wo","sx");//返回:sss.yahxx.cxm 翻译字符串 把所有w换成了s把所有的o换成了xstrspn://找出比对到的最初部份的长度echo strspn("abcdefg","1234567890");//返回:0//找出没有比对到的最初部份的长度echo strcspn("abcdefg","1234567890");//返回:73.正则preg_match://返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。if (preg_match ("/php/i", "PhP is the web scripting language of choice."))echo "存在";elseecho "不存在";preg_match_all://则相反,会一直搜索到 subject 的结尾处。preg_match_all("/\(?(\d{3})?\)?(?(1)[\-\s])\d{3}-\d{4}/x","Call 555-1212 or 1-800-555-1212", $phones);print_r($phones[0]);//取得所有的电话号码ereg_replace://URL 替换为超连接echo ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", '这是百度http://www.baidu.com网站。');preg_replace:过滤$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记"'([\r\n])[\s]+'", // 去掉空白字符"'&(quot|#34);'i", // 替换 HTML 实体"'&(amp|#38);'i","'&(lt|#60);'i","'&(gt|#62);'i","'&(nbsp|#160);'i","'&(iexcl|#161);'i","'&(cent|#162);'i","'&(pound|#163);'i","'&(copy|#169);'i","'&#(\d+);'e"); // 作为 PHP 代码运行$replace = array ("","","\\1","\"","&","<",">"," ",chr(161),chr(162),chr(163),chr(169),"chr(\\1)");echo $text = preg_replace ($search, $replace, '<b>test</b><script>alert("adfasdf");</script>');preg_quote://转义正则表达式字符,把每个要加\都加上\,符合正则式。echo preg_quote('$40 for a g3/400','/');//返回:\$40 for a g3\/400sql_regcase://产生用于不区分大小的匹配的正则表达式echo sql_regcase("Foo-bar.a"); //返回:[Ff][Oo][Oo]-[Bb][Aa][Rr].[Aa]4.URL 编码处理函数urlencode:echo $str = urlencode('http://www.baidu.com?key=百度');//编码echo urldecode($str);//解码rawurlencode://百分号(%)后跟两位十六进制数的序列都将被替换成原义字符//注: rawurldecode() 不会把加号('+')解码为空格,而 urldecode() 可以。echo $str = rawurlencode('http://www.baidu.com?key=百度');//编码echo rawurldecode($str);parse_url://解析 URL,返回其组成部分print_r(parse_url("http://username:password@hostname/path?arg=value#anchor"));parse_str://是将URL解析成变量$str = "id=1&name=2";parse_str($str);echo $name;//有第二个参数时,把值存到了数组中$str = "id=1&name=2";parse_str($str,$array);print_r($array);5.时间函数mktime://把日期转换成时间戳echo time()-mktime(0,0,0,9,17,2008);//返回:当前时间和2008年9月17日的时间差。echo date('Y-m-d H:i:s');//当前的日期和时间getdate://取得日期/时间信息print_r(getdate(time()));6.比较similar_text://比较两个字符串的相似度$a = "Hellohhh6";$b = "hello3hh";echo similar_text($a,$b);//返回:6比较对应的位置有多少相同的字符echo "<br>";similar_text($a,$b,$similar);echo $similar."%"; //输出相同字符的百分比soundex://比较两个单词的发音$a = "ddHello6";$b = "hello3";echo soundex($a)."<br>";echo soundex($b)."<br>";if(soundex($a)==soundex($b)) echo "发音相同";else echo '不同';strnatcmp()://按自然排序法时进行字符串比较$arr = array("a1.jpg","a2.jpg","a3.jpg","a4.jpg");$max = $arr[0];for($i=0;$i<count($arr);$i++){if(strnatcmp($arr[$i],$max)>0)$max = $arr[$i];}echo $max;//返回:a4.jpgstrcmp://区分大小写,按字节进行字符串比较,第一个字符串大于第二个字符串时返回:1,等于返回:0,小于返回:-1echo strcmp('abc','Abc');strcasecmp://返回两个字符串的相差数echo strcasecmp('wbc','bbc');//返回:21strncmp://指定字元数目的字符串比对,此函数和相似,不同的是,你可以指定要用来比对的字符串的字元数目。如果任何一个字符串比 len还短时,则会使用那个字符串的长度来比对echo strncmp("adrdvark","aardwolf",4);//返回:17.排序sort://将数组的值由a-z重排$a = array("1","s","3","n","5");//返回:1,3,5,n,ssort($a);//排序print_r($a);8.其他str_pad://填塞字符串成为指定的长度,pad_type可以是STR_PAD_RIGHT、STR_PAD_LEFT或是STR_PAD_BOTHecho str_pad("www.yahoo.com",17,"_",STR_PAD_BOTH);//字符串的填补函数__www.yahoo.com__strlen("aaa");//求数组的长度返回:3strrev();// 字符串的颠倒strtolower();//转换成小写strtoupper();//转换成大写str_replace()将字符串替换,区分大小写str_ireplace()不区分大小写ucfirst();//将第一个字母转换成大写ucwords();//将每个单词的第一个字母转换成大写echo join("&",array('wo', 'men', 'shi'));//字符串的连合 返回:wo&men&shi用&连合count_chars://传回在字符串中使用的字元的资讯print_r(count_chars("Hellohhh6",0));//返回字符串中每个字节值(0~255)出现的次数作为值的数组。0列出所有的。1只列出现次数大于0的。2只列出现次数等于0的。3返回所使用的字节值组成的字符串。如:6Hehlo。4返回所未使用的字节值组成的字符串str_replace:str_replace("yahoo","baidu","www.yahoo.com");$c = "www.yahoo.com";$arr = array("yahoo","com");echo str_replace($arr,"baidu",$c);//返回:www.baidu.baidu$c = "www.yahoo.com";$arr1 = array("www","yahoo","com");$arr2 = array("ftp","baidu","net");echo str_replace($arr1,$arr2,$c);//返回:ftp.baidu.netsubstr($a,2,2);//取子字符串echo substr_count("This is a test", "is");//统计子字符串的出现的个数substr_replace();//替换子字符串$url = "http://localhost/zheng_ze_biao_da/youxiang.php";echo substr($url,strrpos($url,"/")+1);//返回:youxiang.php用于返回文件名str_word_count:$a = "I/ love/ you/";echo str_word_count($a);//返回:3 统计字符串的单词的个数print_r(str_word_count($a,1));//返回:Array ( [0] => I [1] => love [2] => you )//print_r(str_word_count($a,2));//返回:Array ( [0] => I [3] => love [9] => you )//print_r(str_word_count($a,1,"/"));返回:Array ( [0] => I/ [1] => love/ [2] => you/ )这里是忽略"/"的注:关于PHP常用字符串的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释