一、统计字符串
(1)strlen() 统计字符串长度
函数返回值为整形,表示字符串长度。若返回值为0,表示该字符串为空。该函数对待一个UTF8的中文字符,处理为3个字节长度。
echo strlen("xiaolin!");// 输出:8echo strlen("小林!"); // 输出:7
(2)mb_strlen() 统计中文字符串的长度
mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
$str 要检查长度的字符串$encoding,可指定字符编码,如省略则使用内部字符编码返回值:返回具有encoding编码的字符串str包含的[字符数],多字节的字符被计为 1$str='我是小林zi';echo strlen($str).'';// 在strlen计算中,对待一个UTF8的中文字符,处理为3个字节长度,3 * 4 + 2 = 14echo mb_strlen($str,'utf8').'';// 当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符,即为 1 * 4 + 2 = 6echo mb_strlen($str,'gbk').'';// 当mb_strlen的内码选择为gbk的时候,一个中文字符当成1.5个字符来处理来处理, 1.5 * 4 + 2 = 8
(3)count_chars() 统计一个字符串中的字符出现频率。
count_chars(string,mode)
mode 可选。规定返回模式。默认是 0。以下是不同的返回模式:
- 0 - 数组,ASCII 值为键名,出现的次数为键值
- 1 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数大于 0 的值
- 2 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数等于 0 的值
- 3 - 字符串,带有所有使用过的不同的字符
- 4 - 字符串,带有所有未使用过的不同的字符
print_r(count_chars($str,1)); //Array ( [32] => 1 [33] => 1 [72] => 1 [87] => 1 [100] => 1 [101] => 1 [108] => 3 [111] => 2 [114] => 1 )print_r(count_chars($str,3)); // !HWdelor
二、字符串转化
(1)trim():去除空格;
ltrim():只从开始处去除空格; rtrim():只从结尾处去除空格。trim(string,charlist)
charlist 可选。规定从字符串中删除哪些字符。如果被省略,则移除以下所有字符:
"\0" - NULL
"\t" - 制表符
"\n" - 换行
"\x0B" - 垂直制表符
"\r" - 回车
" " - 空格
(2)strrev():逆置字符串。
echo strrev("I am xiaolin!");//输出 : !niloaix ma I
三、字符串和数组的相互转换
(1)explode() : 把字符串打散为数组。
$str = "Hello world. I am xiaolin!";print_r (explode(" ",$str));//输出 : Array ( [0] => Hello [1] => world. [2] => I [3] => am [4] => xiaolin! )
(2)implode():把数组元素组合为字符串
$str = "Hello world. I am xiaolin!";$array = explode(" ",$str);print_r ($array);echo "";//输出 : Array ( [0] => Hello [1] => world. [2] => I [3] => am [4] => xiaolin! )echo implode("@",$array);//输出: Hello@world.@I@am@xiaolin!
四、查找字符串
(1)strpos():查找字符串在另一字符串中第一次出现的位置(区分大小写)
(2)stripos():查找字符串在另一字符串中第一次出现的位置(不区分大小写)
(3)strripos(): 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
(4)strrpos():查找字符串在另一字符串中最后一次出现的位置(区分大小写)
stripos(string,find,start);start 可选,规定开始搜索的位置。
echo stripos("You love php, I love php too!","PHP");// 9
五、截取字符串
(1)strstr() 函数搜索字符串在另一字符串中的第一次出现,并返回剩余部分。该函数对大小写敏感。
strstr(string,search,before_search)
before_search 可选。默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。
echo strstr("Hello world!","o"); //o world!echo strstr("Hello world!","world",true);// Hello
(2)stristr():函数搜索字符串在另一字符串中的第一次出现。该函数对大小不写敏感。
(3)substr():函数返回字符串的一部分。
substr(string,start,length)
start : 规定在字符串的何处开始。
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾开始的指定位置开始
0 - 在字符串中的第一个字符处开始
length : 规定被返回字符串的长度。默认是直到字符串的结尾。
正数 - 从 start 参数所在的位置返回的长度
负数 - 从字符串末端返回的长度
如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
$str = "xiao lin";echo substr($str,10).""; //falseecho substr($str,1).""; //iao linecho substr($str,3).""; //o linecho substr($str,-1).""; //n
$str = "xiao lin";echo substr($str,0,8).""; // xiao linecho substr($str,1,6).""; //iao liecho substr($str,0,5).""; // xiaoecho substr($str,0,-1).""; // xiao liecho substr("Hello world",-2,-1)."";//l