近来做了个项目用到很多字符操作相关的函数,虽然都成功解决相应需求,但是在查手册的时候还是会很浪费时间,甚至有时会在查手册的时候打断思路。所以做完项目之后,抽空做了这个常用字符函数总结,以提高以后的开发效率。注:[ ]内的为可选参数,紫色字体为函数说明,暗红色字体为函数示例,文章将以函数功能划分为增、删、改、查四个部分。
增:
1.addslashes($string) -- 为$string字符串中的预定义字符前(单('),双("),反(\),NULL)添加"\",返回已转义字符串
addslashes("hello 'world'") 输出==> "hello \'world\'"
2.addcslashes($string,$substr) -- 为$string字符串中的$substr字符前添加"\",返回已转义的字符
addcslashes("hello 'world'",'h') 输出==> "\hello 'world'"
3.chunk_split($string,$length,$insert_str) -- 在$string中以长度为$length为单位,依次插入$insert_str字符,返回插入完毕之后的字符串
chunk_split("hello world",3,'-') 输出==> "hel-lo -wor-ld-"
4. implode($join_str,$arr) -- 将$arr数组每个元素以$join_str字符平拼接成新的字符串
implode(',',array('hello','world')) 输出==> "hello,world"
5. join($join_str,$arr) -- 将$arr数组每个元素以$join_str字符平拼接成新的字符串。与implode用法完全一致,join函数是implode函数的别名
6. str_pad($string,$length,$pad_string,[$pad_type]) -- 在不指定$pad_type的情况下将$string用$pad_string往右侧填充至长度$length。$pad_type可以选择填充方向,其中STR_PAD_LEFT--左侧填充,STR_PAD_BOTH,两侧填充,如果不是偶数,那么右侧获得额外填充。STR_PAD_RIGHT--右侧填充,这也是默认的填充方式
str('hello world',16,'.') ==> 输出 "hello world....."
str('hello world',16,'.',STR_PAD_BOTH) ==> 输出 "..hello world..."
7. str_repeat($string,$repeat_num) -- 将$string重复$repeat_num次
str_repeat('ha',3) ==> "hahaha"
删:
1. stripslashes() -- 删除由 addslashes() 函数添加的反斜杠。
stripslashes("Who\'s") ==> "Who's"
2.chop($string,[$str]) -- 不加第二个参数的情况下删除$string右侧的空白字符(回车\n换行\r制表\t空格)。加入第二个参数就是删除$string右侧的$str.
chop("hello world ") ==> "hello world"
chop("hello world,",",") ==>"hello world"
3.strip_tags($string,$allow) -- 删除$string中除了指定的$allow标签之外的所有PHP与HTML的标签
strip_tags("<h1><b>Are you ok</b></h1>") ==> "Are you ok"
strip_tags("<h1><b>Are you ok</b></h1>","<b>") ==> "<b>Are you ok</b>"
改:
1.explode($split_str,$string) -- 按照$split_str切割$string字符并且保存到数组中
explode(",","one,tow,three") ==> ["one","tow","three"]
2.str_split($string,$length) -- 按照$length长度切割$string并且保存到数组中
str_split("123",1) ==> ["1","2","3"]
请注意与explode()函数的区别:explode是以切割符切割字符,而str_split()是以长度切割字符;
3.lcfirst($string) -- 把$string中的首字母变成小写;
lcfirst("How old are you?") ==> "how old are you"
4.ucfirst($string) -- 把$string中的首字母变成大写;
ucfirst("how old are you?") ==> "How old are you"
5.ucwords($string) -- 把$string中每个单词的首字母变成大写;
ucwords("how are you doing?") ==> "How Are You Doing?"
6.strtolower($string) -- 把$string每个字符都变成小写;
strtolower("Are you ok?") ==> "are you ok?"
7.strtoupper($string) -- 把$string每个字符都变成大写;
strtoupper("Are you ok?") ==> "ARE YOU OK?"
8.number_format($string,[$float_num]) -- 把$string通过千分位组格式化,$float_num可以指定保留的小数位数(默认不保留小数位数并且采取舍入策略)
number_format("4999.9") => "5,000"
number_format("4999.9",2) => "4,999.90"
9.sprintf($string,[$param1,$param2...]) -- 按照参数$param1,$param2...格式化$string
sprintf("hi %s,this is %s","xiaoming","my pen") ==> "hi xiaoming,this is my pen"
10. strrev($string) -- 把$string颠倒过来;
strrev("123") ==> "321"
查:
1.chr($num) -- 从指定的 ASCII 值返回字符
chr(43) ==> "+"
2.similar_text($str1,$str2,$percent) 计算$str1与$str2的相似度将结果赋值并返回到$percent变量中;
similar_text('how','hoq',$percent);
echo $percent; ==> 66.666666666667
3.str_shuffle($string) -- 打乱$string的顺序,返回新的字符串;
str_shuffle("123456") ==>"345621"
4.stripos($string,$find,[$start_index]) -- 不区分大小写的查找$find在$string中第一次出现的位置,并返回$find在$string中的位置(从0开始算),找不到将返回false;
stripos("ABCDEF","c") ==> 2
stripos("ABCDEF","C") ==> 2
5.strripos($string,$find,[$start_index]) -- 不区分大小写的查找$find在$string中最后一次出现的位置,并返回$find在$string中的位置(从0开始算),找不到将返回false;
strripos("ABCDCEF","c") ==> 4
strripos("ABCDCEF","C") ==> 4
6.strpos($string,$find,[$start_index]) -- 区分大小写的查找$find在$string中第一次出现的位置,并返回$find在$string中的位置(从0开始算),找不到将返回false;
strpos("ABCDEF","c") ==> false
strpos("ABCDEF","C") ==> 2
7.strrpos($string,$find,[$start_index]) -- 区分大小写的查找$find在$string中最后一次出现的位置,并返回$find在$string中的位置(从0开始算),找不到将返回false;
strrpos("ABCDCEF","c") ==> false
strrpos("ABCDCEF","C") ==> 4
8.strstr($string,$find,[ture or false]) -- 区分大小写从$string查找$find第一次出现的位置,并且返回剩余的部分.找不到将返回false,指定第三个参数可以指定是返回剩余部分还是返回开头部分,默认为false,返回剩余部分
strstr("ABCDCEF","C") ==> "CDCEF"
strstr("ABCDCEF","c") ==> false
strstr("ABCDCEF","C",true) ==> "AB"
9.stristr($string,$find,[ture or false]) -- 不区分大小写从$string查找$find第一次出现的位置,并且返回剩余的部分.找不到将返回false,指定第三个参数可以指定是返回剩余部分还是返回开头部分,默认为false,返回剩余部分
stristr("ABCDCEF","C") ==> "CDCEF"
stristr("ABCDCEF","c") ==> "CDCEF"
stristr("ABCDCEF","C",true) ==> "AB"
10.strlen($string) -- 返回$string的长度;
strlen("123456") ==> 6
11.substr($string,$start_index,$length) -- 在$string的$start_index的位置开始切割长度为$length的字符;如果不添加$length参数的话,将一直切割到末尾
substr("ABCDEFG",2,3) ==> "CDE"
substr("ABCDEFG",2) ==>"CDEFG"