PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)

PHP 投稿 8500 0 评论

PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)

今天无意中看到谷歌的网页输出的 html 代码竟然都被压缩成了一段代码了。感觉挺有趣的,理论上不知道这样是否能算的上是一种优化,但感觉这样做的话应该一定程度上减少了页面网络传输的体积。下面本人也分享一种利用 php 清除html代码中的空格,换行符,制表符,注释标记等以达到压缩输出 html 的目的。其实如果使用的是smarty模板开发的话,可以直接在模板中使用strip标签即可达到相同的目的。


/**
*压缩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);
}

写到这里不得不说到当我们在写采集程序时,往往也需要对采集回来的内容进行一定的处理,比如删除HTML代码、去掉多余的空格、删除回车换行符等等。下面就写一个更霸气的方法来实现这个想法吧。思路如下:


function cleanHtml($str){ 
	$str=trim($str);
	$str=strip_tags($str,"");
	$str=ereg_replace("\t","",$str);
	$str=ereg_replace("\r\n","",$str);
	$str=ereg_replace("\r","",$str);
	$str=ereg_replace("\n","",$str);
	$str=ereg_replace(" "," ",$str);
	return trim($str);
}

编程笔记 » PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)

赞同 (49) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽