社区
基础编程
帖子详情
请问如何实现长文字的缩写功能.
XiaoDi_Liu
2004-08-08 03:51:56
我有一大串长文字.在某些场合只需显示前10个字符和......但是用了substr(xx,0,10)后偶尔会产生xxx?......的情况.也就是这个?是被分割的汉字字符.前十个当中有奇数个数字和字母.请问有什么好的解决之道吗?谢谢!
...全文
153
7
打赏
收藏
请问如何实现长文字的缩写功能.
我有一大串长文字.在某些场合只需显示前10个字符和......但是用了substr(xx,0,10)后偶尔会产生xxx?......的情况.也就是这个?是被分割的汉字字符.前十个当中有奇数个数字和字母.请问有什么好的解决之道吗?谢谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skystar008
2004-08-09
打赏
举报
回复
这个问题问的人太多了!
function substrex($str,$len)
{
$str = (string)$str;
$len = (int)$len;
$strlen = strlen($str);
if($len>$strlen) $len = $strlen;
$i = 0;
$fixlen = 0;
while($i<$len){
$chr = $str[$i];
$i++;
if(ord($chr)<0x80) $fixlen++; //128D
elseif($i<$len){
$i++;
$fixlen += 2;
}
}
$cutstr = substr($str,0,$fixlen);
if ($str <> $cutstr)
{
$cutstr .= '...';
}
return $cutstr;
}
lzkd
2004-08-08
打赏
举报
回复
PHP中一个控制字符串输出的函数
// php 中 一个控制字符串输出的函数(中英文),每行显示多少字数,避免英文的影响
// $str 字符串
// $len 每行显示的字数(汉字×2)
function rep($str,$len)
{
$strlen=strlen($str);
$i=0;
$finstr="";
$pos=0;
while($i<$strlen)
{
$s1=substr($str,$i,1);
$s2=ord($s1);
if($s2>0xa0){
$finstr.=substr($str,$i,2);
$pos+=2;
$i+=2;
}else{
switch($s2){
case 13:
$finstr.="<BR>";
$pos=0;
break;
case 10:
$pos=0;
break;
case 32;
$finstr.=" ";
$pos++;
break;
default:
$finstr.=htmlspecialchars($s1);
$pos++;
break;
}
$i++;
} //if
if($pos>=$len){
$finstr.="<BR>";
$pos=0;
}
} //while
return $finstr;
}
lzkd
2004-08-08
打赏
举报
回复
substr()函数中文版(终极完美版)
function msubstr($str,$start,$len)//字符位置从0开始
{
$strlen=$start+$len;
for($i=0;$i<$strlen;$i++)
{
if(ord(substr($str,$i,1))>0xa0)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
}
return $tmpstr;
}
ice_berg16
2004-08-08
打赏
举报
回复
/* 函数 sub_str($text, $length)
** 功能 从文本中截取指定长度字符串,考虑了对中文的处理
** 参数 $text 要截取的文本
** 参数 $length 要截取的字符串长度
*/
function sub_str($text, $length)
{
for ($i=0; $i<$length; $i++)
{
$chr = substr($text, $i, 1);
if (ord($chr) > 0x80)//字符是中文
{
$length++;
$i++;
}
}
$str = substr($text, 0, $length);
return $str;
}
since2006
2004-08-08
打赏
举报
回复
用这个。。。。接分ing... :)
$srt = substr($str,"0","20").chr(0);
终于抢到一贴了,以前一朋友靠诉偶的。。
juxugongzi
2004-08-08
打赏
举报
回复
一般来说,GB2312汉字的前后两个字节的ASCII值都不会小于 128,而英文字符正相反,只需要判断这个就可以了。不过,你不要想用这个办法判断其他大字库的汉字编码,比如说 GBK。
spacet
2004-08-08
打赏
举报
回复
写个函数,判断你需要截取的地方是汉字还是非汉字
实现
长
文字
的
缩写
功能
function substrex($str,$len){ $str = (string)$str; $len = (int)$len; $strlen = strlen($str); if($len>$strlen) $len = $strlen; $i = 0; $fixlen = 0; whi
递归
缩写
1一个递归
缩写
(偶尔写成递归首字
缩写
)是一种在全称中递归引用它自己的
缩写
。这个词最先在1986年在纸质出版物中出现。
文字
样式
缩写
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>字体样式
缩写
</title> <style type="text/css"> div{ color: #fff; width: 200px; height: 200px; background-color: seagreen; margin:100
排版与
缩写
文字
排版 字体:body{font-family:"Microsoft Yahei";} 字号和颜色:body{font-size:20px;color:red;} 字体排版:p span{font-weight:bold;}//设置为粗体 p a{font-style:italic;}//斜体 ...
【vim】
缩写
:ab [
缩写
] [要替换的
文字
]
一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义
缩写
,它可以实时地把你输入的东西替换为另外的东西。语法格式如下: :ab [
缩写
] [要替换的
文字
] 一个通用的例子是: :ab asap as soon as possible 会把你输入的 “asap” 替换为 “as soon as possible”。 转载于:https://www.cnblogs.com/music378/p/...
基础编程
21,889
社区成员
140,329
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章