/**
* 清除html标签
* @author TechLee
*/
function clear_tags($str)
{
$str = strip_tags($str);
//首先去掉头尾空格
$str = trim($str);
$str = preg_replace("/(\s|\ \;| |\xc2\xa0)/", "", strip_tags($str));
//接着去掉两个空格以上的
$str = preg_replace('/\s(?=\s)/', '', $str);
//最后将非空格替换为一个空格
$str = preg_replace('/[\n\r\t]/', ' ', $str);
return $str;
}
/**
* 清除html标签,字符串截取
* 支持中文
* @author TechLee
*/
function substr_cn($str, $length = 0, $start = 0, $charset = "utf-8", $suffix = true)
{
$str = clear_tags($str);
if (function_exists("mb_substr")) {
if ($length > 0 && mb_strlen($str, $charset) <= $length) {
return $str;
}
$slice = $length > 0 ? mb_substr($str, $start, $length, $charset) : $str;
} else {
$re['utf-8'] = "/[\x01-]|[�-�][�-�]|[�-�][�-�]{2}|[�-�][�-�]{3}/";
$re['gb2312'] = "/[\x01-]|[�-�][�-�]/";
$re['gbk'] = "/[\x01-]|[�-�][@-�]/";
$re['big5'] = "/[\x01-]|[�-�]([@-~]|�-�])/";
preg_match_all($re[$charset], $str, $match);
if ($length > 0 && count($match[0]) <= $length) {
return $str;
}
$slice = join("", $length > 0 ? array_slice($match[0], $start, $length) : $match[0]);
}
if ($suffix) {
return $slice . "…";
}
return $slice;
}