php截取字符串长度函数详解

在php中提供了大量字符串操作函数,像计算字符串长度或字符串截取函数,但是他们都只能简单的计算英文字符,不能对中文混合字符串进行操作,下面我来给大家介绍截取字符串长度与计算字符串长度的方法总结.

常用的字符处理函数,代码如下:

  1. strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后
  2. strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾
  3. strpos(string,string[,int]) //某个字符串第一次出现的位置
  4. strrpos(string,string) //某个字符串最后一次出现的位置
  5. substr(string,int[,int]) //从指定位置开始截取字符串,可以指定截取的长度。
  6. strlen(string) //获取字符串的长度

假设:$str="这是1个字符串";这个串中包含了一个半角字符,同样执行如下代码:

if(strlen($str)>10) $str=substr($str,10);

由于原字符串$str的第10、11个字符构成了汉字“符”;执行串分割后会将该汉字一分为二,这样被截取的串就会发现乱码现象,那我们可以先来计算字符串长度,代码如下:

  1. <?PHP
  2. header('Content-type: text/html; charset=utf-8');
  3. $str = "在士大夫了sdfsdfcxvzv一截";
  4. $pa = '/[x{4e00}-x{9fa5}]/siu';
  5. preg_match_all($pa, $str, $r);
  6. $count = count($r[0]);
  7. echo "当前的字符串中,共有 $count 个汉字";
  8. if($count>10)
  9. {
  10. //如果汉字数量大于10,你的代码
  11. }
  12. ?>