标题:怎样取一定长度的字符串?
只看楼主
redfree
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-6-16
 问题点数:0 回复次数:3 
怎样取一定长度的字符串?
我用了substr()取一定长度的字符串,一个汉字的长度可以用2,取5个汉字的长度就是 substr($str,0,10),但是如果其中有一个字母或数字的时候,就会在后面出现一个? ,这个应该怎样解决啊?
搜索更多相关主题的帖子: 字符 长度 substr 汉字 数字 
2007-06-04 09:06
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
得分:0 
用mb_substr

2007-06-04 09:31
yuexiayiyu
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-1-21
得分:0 
能举个例子吗?这函数不知道怎么用?

回头→守望过去岁月 →在我们身上刻下了无法抹去的痕迹→在午夜里→ 静静听见→有人说→过去了→过去了
2007-06-04 10:34
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
得分:0 

晕了,这个函数我在这里不只发了三次了,怎么就不喜欢搜索呢


<?php
function strSplit($s, $len) {
$end = '…';
$result = '';
$strLen = strlen($s);
if ($strLen <= $len) {
return $s;
}
$len -= 2;
for ($i=0; $i<$len && $i<$strLen; $i++) {
$c = $s[$i];
if (ord($c) < 0x80) {
$result .= $c;
} elseif ($i+1<$len) {
$result .= $s[$i++] . $s[$i];
}
}
return ($i < $strLen) ? ($result . $end) : $result;
}

echo strSplit('1234567', 10), '<br />';
echo strSplit('1234567890', 10), '<br />';
echo strSplit('1234中文567890abcdefghijkl', 10), '<br />';
echo strSplit('全部都是中文', 10), '<br />';
echo strSplit('全a部b都c是d中e文', 10), '<br />';
?>

2007-06-04 11:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-144662-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.600909 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved