我编写了这个PHP函数,它接受任何文本/ html字符串并修剪它。优化了一个修剪字符串的php函数
例如:
gen_string("Hello, how are you today?",10);
返回: 你好,怎么...
当函数的字符串的限制是一样的特殊字符这样的位置上出现问题如:á,ñ等...
在这种情况下:
gen_string("Helló my friend",5);
返回:地狱...
如何解决这个问题的任何想法?这是目前的功能:
# string: advanced substr
function gen_string($string,$min,$clean=false) {
$text = trim(strip_tags($string));
if(strlen($text)>$min) {
$blank = strpos($text,' ');
if($blank) {
# limit plus last word
$extra = strpos(substr($text,$min),' ');
$max = $min+$extra;
$r = substr($text,0,$max);
if(strlen($text)>=$max && !$clean) $r=trim($r,'.').'...';
} else {
# if there are no spaces
$r = substr($text,0,$min).'...';
}
} else {
# if original length is lower than limit
$r = $text;
}
return trim($r);
}
谢谢!
您需要使用MBSTRING功能。特别是'mb_substr()'http:// php。net/mb_substr和'mb_strpos()'http://php.net/mb_strpos – 2010-07-08 18:00:17
怪异...调用未定义的函数mb_strimwidth() - 我确实有PHP 5 – andufo 2010-07-08 18:12:56