php正则,去掉除html标签外的所有空格/换行符等特殊字符?注:html标签内可能会有属性

html标签内的空格不去掉,如<img alt='gg.jpg'>中的空格不去

你是要压缩代码吧?

/**
 * 压缩html : 清除换行符,清除制表符,去掉注释标记  
 * @param $string  
 * @return  压缩后的$string 
 * */
function compress_html($string) {  
    $string = str_replace("\r\n", '', $string); //清除换行符  
    $string = str_replace("\n", '', $string); //清除换行符  
    $string = str_replace("\t", '', $string); //清除制表符  
    $pattern = array (  
                    "/> *([^ ]*) *</", //去掉注释标记  
                    "/[\s]+/",  
                    "/<!--[^!]*-->/",  
                    "/\" /",  
                    "/ \"/",  
                    "'/\*[^*]*\*/'"  
                    );  
    $replace = array (  
                    ">\\1<",  
                    " ",  
                    "",  
                    "\"",  
                    "\"",  
                    ""  
                    );  
    return preg_replace($pattern, $replace, $string);  
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-13
这还不好办啊 "/<img\s+(.*)/" \s代表空白 +代表至少一个 这样的话 img后面至少一个是空格 或者无限个 后面的匹配的话 我用.* 代替了 匹配后面的所有内容
第2个回答  2013-11-13
$str=str_replace(" ","",$str);
$str=preg_replace("/([^<]{1,3})\//","$1",$str);
$str=preg_replace("/\n/","",$str);