清除空格,php压缩HTML函数轻松实现压缩html
分类:高并发

压缩HTML的起因
如何提高网页加载速度 ,需要怎么对html页面优化相信是每个拟提高建站技术站长曾想到的问题,其实网页优化的方法还是很多。

 代码如下

PHP压缩html网页代码 (清除空格,换行符,制表符,注释标记)。
有个不错的方法就是压缩HTML,压缩html 其实就是:清除换行符,清除制表符,去掉注释标记 。它所起到的作用不可小视。
现提供PHP 压缩HTML函数。请大家不妨试试看,感觉还不错吧。

有童鞋询问higrid如何 压缩HTML,也就是说能不能 把所有的html、js、Css在运行前都压缩成一行,清除注释标记、换行符、空格、制表符等。这样一个直接的好处是 减小html页面体积来提高前端加载速度。很多人认为启动gzip,但一般启动gzip都比较少对html启动gzip压缩,因为现在的html都是动态的,不会使用浏览器缓存,而启用gzip的话每次请求都需要压缩,会比较消耗服务器资源,对js,css启动gzip比较好是因为js,css都会使用缓存。而大家也用了很多软件过滤一下压缩,也有 在线js/css/html压缩工具,higrid觉得也很麻烦,可读性很差。higrid认为如果将压缩功能做成一个函数的话,这样开发者看到的是未压缩的状态,但访客访问时,服务端的程序将 html页面进行压缩,清除注释标记、换行符、空格、制表符等 来达到 减小了html体积的目的。 如果您经常访问higrid.net, 右键查看一下 html源代码 ,会看到本篇 html源代码经过了压缩处理。包括higrid.net 提供的免费内容管理系统 ,输出的都是压缩html,去掉了空白、换行符、制表符。但higrid.net 上面也有一些例外,就是higrid.net 主要推荐 在线表格 、在线图形 ,包括 jquery这些演示 ,为了方便访客,就没有启动压缩。

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

不废话了,直接上代码:
复制代码 代码如下:
/**
* 压缩html : 清除换行符,清除制表符,去掉注释标记
* @param $string
* @return 压缩后的$string
* */
function compress_html($string) {
$string = str_replace("rn", '', $string); //清除换行符
$string = str_replace("n", '', $string); //清除换行符
$string = str_replace("t", '', $string); //清除制表符
$pattern = array (
"/> *([^ ]*) *", //去掉注释标记
"/[s]+/",
"//",
"/" /",
"/ "/",
"'/*[^*]**/'"
);
$replace = array (
">\1" ",
"",
""",
""",
""
);
return preg_replace($pattern, $replace, $string);
}
?>

因此,higrid个人觉得 压缩html 的最大好处就是一本万利,只要写好了一次函数,以后在需要运用的时候调用一下就可以了,所有程序都可以使用,不会增加任何额外的开发工作。今天higrid就给大家分享几个个人觉得好用的函数,请大家不妨试试看,相信大家会喜欢。

去除连续的空格和换行符

采用php来压缩HTML
由于higrid对 php 比较感兴趣,所以使用 php来压缩HTML,当然使用其他语言也差不多,例如使用 asp来压缩HTML,道理应该一样的。

 代码如下

higrid将 压缩html的功能用php写成一个函数 ,其实网上这样的 php压缩函数 也很多,不信你可以百度或者谷歌,但多数不是很好用,特别在 压缩js 或 压缩CSS 的时候,主要原因是一些 压缩注释 等方面不同导致出现问题。 先看这个函数:
复制代码 代码如下:
/**
* 压缩html : 清除换行符,清除制表符,去掉注释标记
* @param $string
* @return压缩后的$string
* */
function compress_html($string){
$string=str_replace("rn",'',$string);//清除换行符
$string=str_replace("n",'',$string);//清除换行符
$string=str_replace("t",'',$string);//清除制表符
$pattern=array(
"/> *([^ ]*) *",//去掉注释标记
"/[s]+/",
"//",
"/" /",
"/ "/",
"'/*[^*]**/'"
);
$replace=array (
">\1" ",
"",
""",
""",
""
);
return preg_replace($pattern, $replace, $string);
}

<?php
$str="i   am    a     booknnnnnmoth";
//去除所有的空格和换行符
echo preg_replace("/[s]{2,}/","",$str).'<br>';
//去除多余的空格和换行符,只保留一个
echo preg_replace("/([s]{2,})/","1",$str);
?>

php来压缩HTML注意事项
php来压缩HTM 实现的方式主要是用正则表达式去查找,替换。在html压缩的时候,主要要注意下面几点:

去除回车换行符

1.HTML 文档中,多个空白字符等价为一个空白字符。也就是说换行等空白字符的删除是不安全的,有可能导致部分元素的样式产生差异。
2.html中有一个pre, 表示 preformatted text. 里面的任何空白,都不能被删除,因此pre,textarea 标签里面的内容格式需要保留,不能压缩。
3.HTML 中有可能有 IE 条件注释。这些条件注释是文档逻辑的一部分,不能被删除。因此去掉html注释的时候,有些注释是不能去掉的,比如:
4.压缩嵌入式js中的注释要注意,因为可能注释符号会出现在字符串中,比如: var url = ""; // 前面的//不是注释
5.对于动态页面来说,HTML 的压缩有可能还会增加服务器的 CPU 负担,得不偿失

preg_replace("'([rn])[s]+'", "", $content) //去除回车换行符

higrid使用的php压缩html函数代码
由于注释对代码有作用,higrid使用的php压缩html函数代码 没有去掉注释,直接上代码。
复制代码 代码如下:
function higrid_compress_html($higrid_uncompress_html_source )
{
$chunks = preg_split( '/()/ms', $higrid_uncompress_html_source, -1, PREG_SPLIT_DELIM_CAPTURE );
$higrid_uncompress_html_source = '';//[higrid.net]修改压缩html : 清除换行符,清除制表符,去掉注释标记
foreach ( $chunks as $c )
{
if ( strpos( $c, '

 代码如下

{ 
//[higrid.net] remove new lines & tabs 
$c = preg_replace( '/[\n\r\t]+/', ' ', $c ); 
// [higrid.net] remove extra whitespace 
$c = preg_replace( '/\s{2,}/', ' ', $c ); 
// [higrid.net] remove inter-tag whitespace 
$c = preg_replace( '/>\s', '>// [higrid.net] remove CSS & JS comments 
$c = preg_replace( '/\/\*.*?\*\//i', '', $c ); 
} 
$higrid_uncompress_html_source .= $c; 
} 
return $higrid_uncompress_html_source; 
} 

php压缩html函数代码总结
有些童鞋不 推荐压缩html , 主要原因除了上面所说的 php来压缩HTML注意事项 外,通过 gzip 压缩已经能达到很好的效果。另外,因为产生影响HTML的角色太多(静态,动态,前端动态),也没什么量化指标,所以很难控制压缩成什么样(代码写成什么程度)。代码更需要考虑执行效率,而不是传输效率。对于动态页面来说,HTML 的压缩有可能还会增加服务器的 CPU 负担,得不偿失。Google的压缩网页 是因为早期他希望首页文本尽可能控制在一个或两个包内,而且他的首页太重要了,流量也很离谱。压缩一个字节,总流量一算都是个不小的数字,自然也就是必要之举了。进一步的压缩存在问题,除非能像 Google 一样充分测试(Google 也仅压缩了少部分核心服务的页面),否则不推荐对 HTML 进行压缩处理。 

但使用higrid.net 的 php压缩html函数 代码,能很好的解决这个问题。好了,还不快试试。

<?php
// $document 应包含一个 HTML 文档。
// 本例将去掉 HTML 标记,javascript 代码
// 和空白字符。还会将一些通用的
// HTML 实体转换成相应的文本。

$search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
                 "'<[/!]*?[^<>]*?>'si",           // 去掉 HTML 标记
                 "'([rn])[s]+'",                 // 去掉空白字符
                 "'&(quot|#34);'i",                 // 替换 HTML 实体
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(d+);'e");                    // 作为 PHP 代码运行

$replace = array ("",
                  "",
                  "1",
                  """,
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(1)");

$text = preg_replace ($search, $replace, $document);
?>

本文由10bet手机官网发布于高并发,转载请注明出处:清除空格,php压缩HTML函数轻松实现压缩html

上一篇:获取文件目录权限函数fileperms介绍,获取文件权限函数介绍 下一篇:没有了
猜你喜欢
热门排行
精彩图文