放出php压缩HTML函数,轻松压缩html、js和Css
?
縮HTML的起因
如何?提高網頁加載速度?,需要怎么對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這些演示,為了方便訪客,就沒有啟動壓縮。
因此,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("\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); }php來壓縮HTML注意事項
php來壓縮HTM?實現的方式主要是用正則表達式去查找,替換。在html壓縮的時候,主要要注意下面幾點:
higrid使用的php壓縮html函數代碼
由于注釋對代碼有作用,higrid使用的php壓縮html函數代碼?沒有去掉注釋,直接上代碼。
function higrid_compress_html($higrid_uncompress_html_source ) { $chunks = preg_split( '/(<pre.*?\/pre>)/ms', $higrid_uncompress_html_source, -1, PREG_SPLIT_DELIM_CAPTURE ); $higrid_uncompress_html_source = '';//[higrid.net]修改壓縮html : 清除換行符,清除制表符,去掉注釋標記 foreach ( $chunks as $c ) { if ( strpos( $c, '<pre' ) !== 0 ) { //[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</', '><', $c ); // [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函數?代碼,能很好的解決這個問題。好了,還不快試試。
轉載于:https://blog.51cto.com/higrid/1127058
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的放出php压缩HTML函数,轻松压缩html、js和Css的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oschina导出博客获取图片
- 下一篇: php正则过滤