单纯用php原生函数 strip_tags 清除仍有残留和空格,下面的方法完美解决,将html转换为纯文本。

/**
 * 清除html标签
 */
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;
}

// echo clear_tags('<p>Hello,World!!!</p>');
// 输出:
// Hello,World!!!