php字符串截取 我的新闻列表内容太长了 我想通过字符串截取 但是有个问题是 如果是英文截取之后 显示半个单词 这样看起来不是很好 请问有什么好的解决思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <p><?<br> function noBreakWord($string, $max){<br> $testChar = substr($string, $max, 1);<br> if ($testChar == " ") {<br> return substr($string, 0, $max); <br> } else {<br> while ($testChar<>" "){<br> $testChar = substr($string, $max, 1);<br> if ($testChar == " "){<br> return substr($string, 0, $max);<br> } else {<br> $max = $max-1;<br> }<br> }<br> }<br> }<br>?></p> function noBreakWord($string, $max){$testChar = substr($string, $max, 1);if ($testChar == " ") {return substr($string, 0, $max);} else { while ($testChar !=" "){$testChar = substr($string, $max, 1);if ($testChar == " "){return substr($string, 0, $max);} else { $max = $max-1;}}}} 用 mb_substr ,根据字数截取 截止最多$maxWidth个半角字符,一个全角字符当两个半角字符计算代码测试通过function strMax($str, $maxWidth, $encoding='utf-8'){ $strlen = mb_strlen($str); $newStr = ''; for($pos = 0, $currwidth = 0; $pos < $strlen; ++$pos ){ $ch = mb_substr($str, $pos, 1, $encoding); if ($currwidth + mb_strwidth($ch, $encoding) > $maxWidth) break; $newStr .= $ch; $currwidth += mb_strwidth($ch, $encoding) > 1 ? 2 : 1; } return $newStr;}$s = "123我是世界第一等";echo strMax($s, 6); 号外号外 如何用Snoopy模拟“用户登录ASP.Net页面” 请问有人用PHP开发过WebGis么? 关于正则表达式 请问如何获取在线当前用户与IP? 各位大虾有没有关于PHP教学方面的课程超市或教学大纲!! 求问一个正则表达式的问题 PHP正则问题,大牛请帮忙啊! 如何在页面间不使用表单传递变量? php中 为什么验证码 必须要开启 ob_clean 才可以显示 一个分类汇总的题目,求高手解答~` 我想拿RHEL5做个PHP服务器。mysql之类的是用系统自带的好,还是后安好?
$testChar = substr($string, $max, 1);
if ($testChar == " ") {
return substr($string, 0, $max);
} else {
while ($testChar !=" "){
$testChar = substr($string, $max, 1);
if ($testChar == " "){
return substr($string, 0, $max);
} else {
$max = $max-1;
}
}
}
}
代码测试通过function strMax($str, $maxWidth, $encoding='utf-8'){
$strlen = mb_strlen($str); $newStr = '';
for($pos = 0, $currwidth = 0; $pos < $strlen; ++$pos ){
$ch = mb_substr($str, $pos, 1, $encoding);
if ($currwidth + mb_strwidth($ch, $encoding) > $maxWidth)
break; $newStr .= $ch;
$currwidth += mb_strwidth($ch, $encoding) > 1 ? 2 : 1;
} return $newStr;
}$s = "123我是世界第一等";
echo strMax($s, 6);