php 中文截取函数

<?php
/*
* 中文字符截取
* @param   string    $string     被处理的字符串
* @param   int        $start       开始截取的位置
* @param   int        $length     截取的字符长度
* @param   string   $charset    字符编码
* @param   string   $dot          缩略符号
*
* @return string
*/function cutstr($string, $start, $length, $charset = "utf-8", $dot = ‘‘) {

if(function_exists("mb_substr")){
    if(mb_strlen($string,$charset)>$length){
      return mb_substr($string,$start,$length,$charset).$dot;
    }
    return mb_substr($string,$start,$length,$charset);
  }
  $new = ‘‘;
  if($charset===‘gbk‘){
    $string = iconv("gbk","utf-8",$string);
  }
  $str = preg_split(‘//u‘,trim($string));
  for($i = $start,$len = 1;$i<count($str)-1 && $len<=$length;$i++,$len++){
    $new .= $str[$i+1];
  }
  if($charset===‘gbk‘){
    $new = iconv("utf-8","gbk",$new);
  }
  return count($str)-2<$length?$new:$new.$dot;
}
echo cutstr(‘暗色调adsa暗色调‘,0,1,‘utf-8‘,‘....‘);
?>

时间: 2024-11-29 03:30:39

php 中文截取函数的相关文章

收藏几个支持中文的PHP字符串截取函数

字符串截取是一个非常常见的编程任务,而往往带中文的字澳门赌场玩法符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了. <?php function sysSubStr($string,$length,$append = false) { if(strlen($string) <= $length ) { return $string; } else { $i = 0; while ($i < $length) { $st

C#字符串的截取函数用法总结

这篇文章主要介绍了C#字符串的截取函数用法,实例总结了substring,Remove,indexOf等函数的用法,并对具体应用进行了实例分析,需要的朋友可以参考下 本文实例总结了C#常用的字符串截取函数用法.分享给大家供大家参考.具体分析如下: 在C#中字符串截取函数包括有substring 函数,Remove 函数,indexOf 函数,它们三个都可以对字符串进行截取操作,下面我们来分别介绍一下. 下面是截取字符串过程中我们必须知道的以下函数:substring 函数.Remove 函数.i

PHP实现中文截取无乱码

字符串的处理是编程中比较常见的,各种编程语言对字符串的处理也提供了大量函数,像php中mb_substr()函数可以实现对中文字符串的截取,如何使用自定义方法实现中文字符串截取无乱码这也是面试经常遇到的一道题目,不要觉得这是多此一举,php内置函数已经实现了,为什么要自己实现.其实这道题的真实目的是考查你对字符编码的理解.最起码你要知道从哪里开始截取,截取几个字节才是一个完整的字符,不然截取到的都是乱码.这就需要你对多字节字符编码有一定的了解.下面一起来实现吧. 1 <?php 2 /** 3

PHP字符串截取函数strlen和mb_strlen的区别

PHP字符串截取函数strlen和mb_strlen的区别,php教程中常见的计算字符串长度的函数有: strlen和mb_strlen.当字符全是英文字符的时候,两者是一样.这里主要比较一下,中英文混排的时候,两个计算结果. 在PHP中,strlen与mb_strlen是求字符串长度的函数. 两者之间的区别.例子: <?php //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($

php字符串截取函数

英文字符串截取函数: strsub($str, $start, $len); 该函数有三个参数,第一个参数是字符串,第二个参数是截取的开始位置,第三个参数是截取的长度. 如果第三个参数省略,那么就是一直截取到字符串的末尾. 在截取字符串时,可能会用到获取字符串长度的字符串,该函数如下: strlen($str); 该函数直接返回函数的长度. ========================来条分割线======================== 中文字符串截取函数: mb_substr($st

改造phpcms-v9自带的字符串截取函数

1.phpcms-v9自带的字符串截取函数在phpcms/libs/functions/global.func.php文件中: /** * 字符截取 支持UTF8/GBK * @param $string * @param $length * @param $dot */ function str_cut($string, $length, $dot = '...') { $strlen = strlen($string); if($strlen <= $length) return $stri

PHP中的中文截取乱码问题_gb2312_utf-8

一.字符串编码为gb2312,一个中文占俩字节 ? public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度         $strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度         for($i = $start; $i < $strlen;) {            

js字符串截取函数slice()、substring()、substr()

摘要 在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧. 取字符串的三个函数:slice(start,[end]),substring(start,[end])和substr(start,[length]) 相关属性: slice() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的

中文截取无乱码

/* *中文截取无乱码 */ function showsubstr_chinese($str, $start, $length = null) { return join("", array_slice( preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $start, $length)); }