如何高效的替换字符串?? 本帖最后由 yao970953039 于 2011-08-22 17:02:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 echo mb_substr('有一字符串长约30,想截取前20个,后面的用……号代替。谢谢',0,10)."……"; 谢谢,就是这种效果。以前我都用str_replace学了一手 substr這個不好使吧,如果有中文咋辦。還是要自己處理下有中文的情況的。/** * 截取字符串 */if(!function_exists('mbSubstr')) { function mbSubstr($str, $sublen) { if(strlen($str)<=$sublen) { $rStr = $str; } else { $I = 0; while ($I<$sublen) { $StringTMP = substr($str,$I,1); if (ord($StringTMP)>=224) { $StringTMP = substr($str,$I,3); $I = $I + 3; } elseif (ord($StringTMP)>=192) { $StringTMP = substr($str,$I,2); $I = $I + 2; } else { $I = $I + 1; } $StringLast[] = $StringTMP; } $rStr = implode("",$StringLast).'...'; } return $rStr; }}這個是我常用的。 要加判断if(strlen($str)>20)//加else//不用管 最简单的可以是:mb_substr($str,0,20)."……";substr($str,0,20)."……";(这个是计算占位的.比如你全是英文字母,就会截取20个字母;如果20个GB2312编码的中文,就会截取10个中文,因为gb2312的汉字是占用2个位;如果20个utf8编码的中文,就会截取6个中文和一个错误,因为utf8的汉字是占用3个位;)当然,楼上说的,加判断也可以. discuz!开发教程 PHP空间如果做软链接 php 结果集问题,帮帮忙 编码问题,本地上正常,上传到服务器后IE下不正常 .php3? 各PHP战线上混斗的朋友,加群:5737246。 php session 问题 请大家帮忙------------系统 Mandrake10.1 语法??? PHP ADODB 数据库操作 php 正则替换问题 寻求跨域文件上传方法 该如何写循环
以前我都用str_replace学了一手
* 截取字符串
*/
if(!function_exists('mbSubstr')) {
function mbSubstr($str, $sublen)
{
if(strlen($str)<=$sublen) {
$rStr = $str;
} else {
$I = 0;
while ($I<$sublen) {
$StringTMP = substr($str,$I,1);
if (ord($StringTMP)>=224) {
$StringTMP = substr($str,$I,3);
$I = $I + 3;
} elseif (ord($StringTMP)>=192) {
$StringTMP = substr($str,$I,2);
$I = $I + 2;
} else {
$I = $I + 1;
}
$StringLast[] = $StringTMP;
}
$rStr = implode("",$StringLast).'...';
}
return $rStr;
}
}這個是我常用的。
if(strlen($str)>20)
//加
else
//不用管
mb_substr($str,0,20)."……";
substr($str,0,20)."……";(这个是计算占位的.比如你全是英文字母,就会截取20个字母;如果20个GB2312编码的中文,就会截取10个中文,因为gb2312的汉字是占用2个位;如果20个utf8编码的中文,就会截取6个中文和一个错误,因为utf8的汉字是占用3个位;)当然,楼上说的,加判断也可以.