截取指定长度的文字(包含对汉字的处理)

原创 2007年09月20日 09:23:00
一般来说,要截取的变量来自Mysql,首先要保证那个字段长度要足够长,一般为char(200),可以保持100个汉字,包括标点.

    本程序实现的功能:截取指定长度汉字而不会出现以"?>"结尾,超出部分以"..."代替


<?PHP
$str="这个字符比较长SO LONG";
$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...
Echo "$Short_Str";
Function csubstr($str,$start,$len)
{
$strlen=strlen($str);
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
if ($clen>=$start+$len)
break;
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
}

return $tmpstr;
}
Function showShort($str,$len)
{
$tempstr = csubstr($str,0,$len);
if ($str<>$tempstr)
$tempstr .= "..."; //要以什么结尾,修改这里就可以.

return $tempstr;
}
?>



使用方法:

1.将以上代码另存为dovia.php
2.页面引入:<?php include("dovia.php"); ?>
2.套用函数输出目标:
<?php
$str=$row_rs['N_Title'];
$Short_Str=showShort($str,12);
echo "$Short_Str";
?>

 

 

注:

1、int ord ( string string)

      Returns the ASCII value of the first character of string.

2、在gb2312中,汉字编码是以0xa1开始的。

 

根据指定字符长度截取字符串(包含中英文)

public class SplitStr { public static void main(String[] args) { SplitStr ss = new SplitStr();...
  • qq_24626833
  • qq_24626833
  • 2017年09月09日 00:59
  • 101

前台截取一定长度的后台返回文字,并在后面加省略号

RT. 不废话,直接上代码. window.onload = function(){ var text = document.getElementById('infoText'),...
  • killzero
  • killzero
  • 2014年08月29日 14:48
  • 811

Java面试题:根据字节数截取字符串,但是汉字不能截取半个。

深圳阳光人寿JAVA开发岗位,笔试最后一道编程题。JAVA面试题题目:截取字符串指定指定字节数的内容,如果指定的字节数在汉字的中间,汉字不能截取部分,只截取前面的内容。package com.lcx....
  • qq_29542611
  • qq_29542611
  • 2016年09月04日 01:56
  • 2500

面试题之——对包含汉字的字符串截取指定字节数

题目:编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC",4,应该截取"我AB",输入"我ABC汉DEF",6, 应该输出"我AB...
  • zyh5540
  • zyh5540
  • 2013年09月16日 22:32
  • 2044

汉字占多个字节,若按指定字节长度截取字符串,如何处理1/3个汉字?

截取字符串的函数 按照字节 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”...
  • never_cxb
  • never_cxb
  • 2015年11月05日 22:20
  • 1805

java中截取指定长度的字符串的方法

我们经常会用到截取指定长度的字符串的情况。通常的做法是使用subString()方法进行,但字符串中存在全角字符的情况下,使用此方法往往达不到目的,它实现的只是字符的个数(全角字符也按一个字符处理),...
  • jtlyr
  • jtlyr
  • 2009年09月17日 15:19
  • 7491

Java按字节数截取字符串(防止中文被截成一半)

Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。 但目前很多流行的语言,如C#、Java内部采用的都是 Unicode 16(UCS2)编码,在这种编码中...
  • u013409622
  • u013409622
  • 2015年04月22日 14:34
  • 2120

lua 含中文的字符串处理--分离字符、计算字符数、截取指定长度

lua中对中文字符串的一些处理 分离字符 将每个字符分离出来,放到table中,一个单元内一个字符 function StringToTable(s) local tb = {} ...
  • a102111
  • a102111
  • 2016年08月12日 20:18
  • 3991

js通过字节长度截取中英文混合字符串

/** * 截取字符串 中英文混合 * @param str 待处理字符串 * @param len 截取字节长度 中文2字节 英文1字节 */ function subString1(str...
  • li4562258fj155
  • li4562258fj155
  • 2017年08月11日 13:15
  • 336

用css来实现自动截取文字

用css来实现自动截取文字,不需要后台程序和JS的使用好处是:兼容IE,firefox,Opera;有利于内容完整性;有利于SEO;无需后台程序处理;可以在前台随时调节要截取的长度。不好的地方:不能自...
  • Hady6
  • Hady6
  • 2007年11月27日 03:21
  • 538
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:截取指定长度的文字(包含对汉字的处理)
举报原因:
原因补充:

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