Home > php教程 > php手册 > body text

php摘要生成函数(无乱码)

WBOY
Release: 2016-06-06 20:39:46
Original
971 people have browsed it

以前也写过一个PHP文章摘要生成方法(函数), 不过,不怎么好用,也出现乱码,现在再发布一个,这个函数是在某开源系统上拆下来了,希望对大家用用

在使用的时候,得先把要生成摘要的内容strip_tags()一下,当然,你也可以把strip_tags()直接添加到函数中,我没有搞,自己添加吧。下面是函数:
代码如下:
function cutstr($string, $length,$charset,$dot) {//字符,截取长度,字符集,结尾符
if(strlen($string) return $string;
}
$pre = chr(1);
$end = chr(1);
//保护特殊字符串
$string = str_replace(array('&', '"', ''), array($pre.'&'.$end, $pre.'"'.$end, $pre.''.$end), $string);
$strcut = '';
if(strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while($n $t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 $tn = 1; $n++; $noc++;
} elseif(194 $tn = 2; $n += 2; $noc += 2;
} elseif(224 $tn = 3; $n += 3; $noc += 2;
} elseif(240 $tn = 4; $n += 4; $noc += 2;
} elseif(248 $tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
//还原特殊字符串
$strcut = str_replace(array($pre.'&'.$end, $pre.'"'.$end, $pre.''.$end), array('&', '"', ''), $strcut);
//修复出现特殊字符串截段的问题
$pos = strrpos($s, chr(1));
if($pos !== false) {
$strcut = substr($s,0,$pos);
}
return $strcut.$dot;
}
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!