PHP实现中文字串截取无乱码的方法

原创 2007年09月26日 17:18:00
 
当用 substr 截取中文字符的时候会出现乱码,当然你如果装了 mb 扩展, mb_substr截取就不会出现这种问题,如果你用的是虚拟主机,主机上又没装 mb扩展的话,你可以用下面的函数截取
 
# Cut chinese string into appointed length
 # @param [string] string need deal
 # @param [start]  position to cut from
 # @param [length] length to cut
 # @return string
 function GBsubstr($string, $start, $length) {
  if(strlen($string)>$length){
   $str=null;
   $len=$start+$length;
   for($i=$start;$i<$len;$i++){
    if(ord(substr($string,$i,1))>0xa0){
     $str.=substr($string,$i,2);
     $i++;
    }else{
     $str.=substr($string,$i,1);
    }
   }
   return  $str.'...';
  }else{
   return $string;
  }
 }
 

php实现中文字串截取无乱码的三种方法(详)

substr的用法(看手册): 定义和用法 substr() 函数返回字符串的一部分。 注释:如果 start 参数是负数且 length 小于或等于 start,则 l...

android 导入项目 项目中文字乱码问题

乱码问题出现了几次,一直没有在意,今天又出现了,现总结如下: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的。一般默认都是UTF-8或者GBK,当从外部导入的...

Android 导入项目 项目中文字乱码问题

乱码问题出现了几次,一直没有在意,今天又出现了,现总结如下: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的。一般默认都是UTF-8或者GBK,当从外部导入的一个工...

android 导入项目 项目中文字乱码问题

乱码问题出现了几次,一直没有在意,今天又出现了,现总结如下: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的。一般默认都是UTF-8或者GBK,当从外部导入的...

cmd命令行中执行Java文件中文字符乱码情况解决

如上所示的错误 由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译ja...

最长回文字串(JAVA实现)

题目描述: 给定一个字符串,求它的最长回文字串; 解法:遍历字符串的所有字串, for(int i=0; i...
  • zSean
  • zSean
  • 2017年08月10日 10:13
  • 92

用PHP来截取中文字符串而不出现乱码的实现方法

如何截取中文字符串而不出现乱码?  /* 功能:截取全角和半角混合的字符串以避免乱码 参数: $str_cut 需要截断的字符串 $length  允许字符串显示的最大长度 */...

最长回文字串 Manacher算法 时间复杂度O(N)

这个图很经典解释也很清楚了,但是我开始看也看不懂。。实在太菜了。 解释一下重点部分: if(p[id]+id>i) p[i]=min(p[2*id-i],p[id]+id-i);   p[id]是...
  • FrankAx
  • FrankAx
  • 2017年07月03日 20:05
  • 142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP实现中文字串截取无乱码的方法
举报原因:
原因补充:

(最多只允许输入30个字)