php自定义函数及内部函数----字符串处理函数

一、统计字符串

(1)strlen() 统计字符串长度

函数返回值为整形,表示字符串长度。若返回值为0,表示该字符串为空。该函数对待一个UTF8的中文字符,处理为3个字节长度。

echo strlen("xiaolin!");// 输出:8

echo strlen("小林!");  // 输出:7

(2)mb_strlen() 统计中文字符串的长度

mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
$str 要检查长度的字符串
$encoding,可指定字符编码,如省略则使用内部字符编码
返回值:返回具有encoding编码的字符串str包含的[字符数],多字节的字符被计为 1

$str='我是小林zi';
echo strlen($str).'<br>';// 在strlen计算中,对待一个UTF8的中文字符,处理为3个字节长度,3 * 4 + 2 = 14
echo mb_strlen($str,'utf8').'<br>';// 当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符,即为 1 * 4 + 2 = 6
echo mb_strlen($str,'gbk').'<br>';// 当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 "</br>";
//输出 : 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)."<br>"; //false
echo substr($str,1)."<br>"; //iao lin
echo substr($str,3)."<br>"; //o lin

echo substr($str,-1)."<br>"; //n
$str = "xiao lin";
echo substr($str,0,8)."<br>"; // xiao lin
echo substr($str,1,6)."<br>"; //iao li
echo substr($str,0,5)."<br>"; // xiao


echo substr($str,0,-1)."<br>"; // xiao li
echo substr("Hello world",-2,-1)."<br>";//l

 

转载于:https://www.cnblogs.com/xlzfdddd/p/10074097.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值