清除html标签+清除html标签,字符串截取

175 阅读1分钟
/**
 * 清除html标签
 * @author TechLee
 */
function clear_tags($str)
{
    $str = strip_tags($str);
    //首先去掉头尾空格
    $str = trim($str);
    $str = preg_replace("/(\s|\&nbsp\;| |\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;
}