博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php自定义函数及内部函数----字符串处理函数
阅读量:5375 次
发布时间:2019-06-15

本文共 3045 字,大约阅读时间需要 10 分钟。

一、统计字符串

(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

 

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

你可能感兴趣的文章
【转载】MySQL调优脚本tuning-primer.sh使用说明
查看>>
剑指offer面试题4-从尾到头打印链表
查看>>
Binary Tree Level Order Traversal
查看>>
Font Awesome的正确简单使用方法
查看>>
使用RT3070使开发板上网
查看>>
VMware 12 专业版永久许可证密钥
查看>>
截断上传原理剖析
查看>>
threadlocal原理及常用应用场景
查看>>
Linux Shell常用脚本整理
查看>>
NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
查看>>
[UE4]宏
查看>>
mysql5.6快速安装及参数详解
查看>>
Servlet学习笔记
查看>>
《岛上书店》
查看>>
RAC GI安装,报"Task resolv.conf Integerity"验证失败
查看>>
UWP:可滚动的PivotHeader
查看>>
01密码强度检查_python篇
查看>>
17款社会化营销站长插件你用了么?
查看>>
hdu 2732 最大流 **
查看>>
博弈专题
查看>>