php 截取一定长度的字符串(该函数对GB2312使用有效

function ssubstr($string, $length, $dot = ' ...') {
 global $charset;

  if(strlen($string) <= $length) {
   return $string;
  }
  $string = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $string);
  $strcut = '';
  if(strtolower($charset) == 'utf-8') {
   $n = $tn = $noc = 0;
   while($n < strlen($string)) {
     $t = ord($string[$n]);
     if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
   $tn = 1; $n++; $noc++;
     } elseif (194 <= $t && $t <= 223) {
   $tn = 2; $n += 2; $noc += 2;
     } elseif (224 <= $t && $t < 239) {
   $tn = 3; $n += 3; $noc += 2;
     } elseif (240 <= $t && $t <= 247) {
   $tn = 4; $n += 4; $noc += 2;
     } elseif (248 <= $t && $t <= 251) {
   $tn = 5; $n += 5; $noc += 2;
     } elseif ($t == 252 || $t == 253) {
   $tn = 6; $n += 6; $noc += 2;
     } else {
   $n++;
     }
     if($noc >= $length)
     {
   break;
     }
   }
    if($noc > $length)
    {
    $n -= $tn;
    }
   $strcut = substr($string, 0, $n);
  } else {
    for($i = 0; $i < $length; $i++)
    {
     $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
    }
  }
 $strcut = str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $strcut);
 return $strcut.$dot;
}

 
截取一定长度的字符串(该函数对gb2312使用有效)
<?
function wordscut($string, $length ,$sss=0) {

if(strlen($string) > $length) {
               if($sss){
$length=$length - 3;
$addstr=@# ...@#;

}
  for($i = 0; $i < $length; $i++) {
   if(ord($string[$i]) > 127) {
$wordscut .= $string[$i].$string[$i + 1]; //
$i++;
   } else {
$wordscut .= $string[$i];
   }
  }
  return $wordscut.$addstr;
}
return $string;
}
?>

时间: 2024-07-28 22:32:18

php 截取一定长度的字符串(该函数对GB2312使用有效的相关文章

PHP生成自定义长度随机字符串的函数

  这篇文章主要介绍了PHP生成自定义长度随机字符串的函数分享,需要的朋友可以参考下 php随机生成字符串可以自己定义自己所需要的长度,在实际应用开发中,经常遇到. 代码如下: //随机生成字符串 function random($length) { srand(date("s")); $possible_charactors = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $string = ""; whil

Postgresql 插入数据时自动截取一定长度的字符串

5.1. INSERT 5.1.1. 自动截取字符串 CREATE TABLE test (c varchar(5)); 现在开始插入数据库,每次增加一个长度 test=> INSERT INTO test VALUES ('1'); INSERT 0 1 test=> INSERT INTO test VALUES ('12'); INSERT 0 1 test=> INSERT INTO test VALUES ('123'); INSERT 0 1 test=> INSERT

PHP生成自定义长度随机字符串的函数分享_php实例

php随机生成字符串可以自己定义自己所需要的长度,在实际应用开发中,经常遇到. 复制代码 代码如下: //随机生成字符串function random($length) {     srand(date("s"));     $possible_charactors = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";     $string = "";     while(strlen($string)<$l

谈谈我对截取一定长度字符串的一点心得,欢迎指正

心得|字符串         vbs和js都提供了截取一定长度的字符串的函数,但有一个问题是这些函数都将中文字符视为1个字节,而不是正常的2个字节,如果这些输入的数据要提交到数据库中的话,很可能这些数据的真正长度回答与数据库中该字段所允许的最大长度,于是就出错了.        最开始我不会这样做,看了 cheery_ke 兄发表的帖子http://www.dev-club.com/club/bbs/showAnnounce.asp?id=1227955后才知道该怎么做.具体程序是'------

字符串截取固定长度的方法(C#)

字符串 这个函数也没有什么特别之处,就是可以截取一定长度的字符串,可能小特点就是len是字节,解决了汉字与英文字节不一样导致直接截取到的长度不一样的问题, #region 字符串截取函数public static string CutString(string inputString,int len){ ASCIIEncoding ascii = new ASCIIEncoding();int tempLen=0;string tempString="";byte[] s = asci

解决方案-截取指定长度的富文本内容可能会出现页面被凌乱的问题

问题描述 截取指定长度的富文本内容可能会出现页面被凌乱的问题 5C freemaker页面中截取指定长度的字符串,超出长度的部分用-替代 <#if topic.title?length lt 35> ${topic.title}<#else> ${topic.title?substring(035)}... </#if> 如果数据库中topic.title的内容不是纯文本,而是富文本(含有很多html标签的文本)内容,按指定 长度截取的话,就有可能会破坏富文本的html

PHP5 字符串处理函数大全_php技巧

addcslashes - 为字符串里面的部分字符添加反斜线转义字符 addslashes - 用指定的方式对字符串里面的字符进行转义 bin2hex - 将二进制数据转换成十六进制表示 chop - rtrim() 的别名函数 chr - 返回一个字符的ASCII码 chunk_split - 按一定的字符长度将字符串分割成小块 convert_cyr_string - 将斯拉夫语字符转换为别的字符 convert_uudecode - 解密一个字符串 convert_uuencode - 加

js截取固定长度的中英文字符的简单实例_javascript技巧

js虽然提供了计算字符串所占字节数的函数,但是却不能正确计算汉字所占的字节数,如document.form1.username.value="我是中国人",document.form1.username.value.length返回的是5而不是10,于是给编程时带来一些麻烦,如限制固定长度字符的输入,截取固定长度的字符串都因为这个问题达不到预想的效果,下面是自己写的一个简单的函数,用于截取固定长度的字符串,中英文都适用.若有不妥之处还请高手指正! 复制代码 代码如下: //js截取字符

php中计算中文字符串长度、截取中文字符串的函数代码_php技巧

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha