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

原创 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开始的。

 

从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文乱码

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。 要求描述:从一个包含汉字和其他字符的字符串中截取指定字节长度的字符串,不可以出现中文...

截取指定长度的字符串(汉字不出现半个)

package string_by_byte;/** * 定义一个方法,按照指定的长度截取字符. * 如:对于"ab你好",如果取三个字节,那么子串应该只显示"ab",半个汉字舍去. * 如果是四个字...

.NET截取指定长度汉字超出部分以"..."代替

.NET截取指定长度汉字超出部分以"..."代替  ,要完成这个操作,有两种方法,一种是直接写在.aspx 文件下,另一种方法是写在.aspx.cs文件下。具体如下: 1. 在源代码(.aspx)...

net截取指定长度汉字超出部分以指定的字符代替

net截取指定长度汉字超出部分以指定的字符代替 下面是我在网上搜索,然后加以整理的关于在.net中截取指定长度汉字超出部分以指定的字符代替,来拓展一下自己的思路。 方法一:在后台的se...

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

截取字符串的函数 按照字节 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”...

截取指定长度文字,超出部分以特定字符代替

这是在做新闻发布系统时收录的一个简单算法。感觉挺好用的。效果如下(新闻标题):   下面是算法源码: #region 将指定字符串按指定长度进行剪切 /// ...

分割字符串到数组/替换字符串/返回指定字节长度的字符串/判断是否为浮点数,包括double和float/email判断/是否纯汉字判断/空白判断

package 字符串类; import java.util.*; import java.util.regex.Pattern; public class 某人编写的字符串工具类 { /...

java中计算包含汉字字符串的长度

java中: 1字符=2字节,1字节=8位 英文和数字占一个字节,中文占一个字符,也就是两个字节 在计算的字符串长度的时候,若有汉字,直接用String.length()方法是没法计算出准确的长...

牛腩新闻发布系统之技术篇(三)——汉字超出指定长度部分以"..."代替

做的新闻发布系统中需要用到这样一个功能,新闻标题往往会过长,但我们只想显示固定字数,超出部分以其他内容如“…”代替。...

玩转PHP(一)---php中处理汉字字符串长度:strlen和mb_strlen

今天正式开始学习PHP了,不过一不小心发现了一个PHP独特的地方:PHP在处理包含汉字的字符串时要特别注意。 比如 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:截取指定长度的文字(包含对汉字的处理)
举报原因:
原因补充:

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