• 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 可选。规定从字符串中删除哪些字符。如果被省略,则移除以下所有字符:

            "" - NULL

      " " - 制表符

      " " - 换行

      "x0B" - 垂直制表符

      " " - 回车

      " " - 空格

    (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
  • 相关阅读:
    p1217晚餐(简单的dijkstra)
    [USACO07NOV]牛继电器Cow Relays
    [USACO15JAN]草鉴定Grass Cownoisseur
    [SDOI2009]Elaxia的路线
    图论dp [ZJOI2006]物流运输
    数位dp暂退-[ZJOI2010]数字计数
    数位dp进阶:[CQOI2016]手机号码
    数位dp入门-windy数
    借教室
    天天爱跑♂步
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10074097.html
Copyright © 2020-2023  润新知