將PHP程序中返回的JSON格式數(shù)據(jù)用gzip壓縮輸出的方法
1.使用壓縮與不使用壓縮的HTTP輸出比較
2.開啟gzip
利用apache mod_deflate module 開啟gzip
開啟方法:
sudo a2enmod deflate sudo /etc/init.d/apache2 restart
關(guān)閉方法:
sudo a2dismod deflate sudo /etc/init.d/apache2 restart
3.設(shè)置需要gzip壓縮輸出的類型
json的輸出類型是application/json,所以可以這樣設(shè)置
在httpd.conf的<Directory></Directory>中加入
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/json </IfModule>
<?php $data = array( array('name'=>'one','value'=>1), array('name'=>'two','value'=>2), array('name'=>'three','value'=>3), array('name'=>'four','value'=>4), array('name'=>'five','value'=>5), array('name'=>'six','value'=>6), array('name'=>'seven','value'=>7), array('name'=>'eight','value'=>8), array('name'=>'nine','value'=>9), array('name'=>'ten','value'=>10), ); header('content-type:application/json'); echo json_encode($data); ?>
設(shè)置gzip前輸出:
設(shè)置gzip后輸出:
4.單個(gè)json使用gzip壓縮輸出
設(shè)置AddOutputFilterByType DEFLATE application/json后,所有json格式的數(shù)據(jù)輸出都將使用gzip壓縮輸出。
如果只想某一個(gè)json使用gzip壓縮輸出,其他不需要,可以使用ob_start();方法來實(shí)現(xiàn)。
首先不需要設(shè)置AddOutputFilterByType,然后在代碼最開始位置加入ob_start('ob_gzhandler');
<?php ob_start('ob_gzhandler'); $data = array( array('name'=>'one','value'=>1), array('name'=>'two','value'=>2), array('name'=>'three','value'=>3), array('name'=>'four','value'=>4), array('name'=>'five','value'=>5), array('name'=>'six','value'=>6), array('name'=>'seven','value'=>7), array('name'=>'eight','value'=>8), array('name'=>'nine','value'=>9), array('name'=>'ten','value'=>10), ); header('content-type:application/json'); echo json_encode($data); ?>
相關(guān)文章
百度實(shí)時(shí)推送api接口應(yīng)用示例
這篇文章主要介紹了百度實(shí)時(shí)推送api接口應(yīng)用示例,非常的實(shí)用,有需要的朋友可以參考下2014-10-10詳解PHP中strlen和mb_strlen函數(shù)的區(qū)別
在PHP中,strlen與mb_strlen是求字符串長度的函數(shù),但是對(duì)于一些初學(xué)者來說,如果不看手冊(cè),也許不太清楚其中的區(qū)別2014-03-03thinkPHP簡單調(diào)用函數(shù)與類庫的方法
這篇文章主要介紹了thinkPHP簡單調(diào)用函數(shù)與類庫的方法,簡單講述了thinkPHP公共函數(shù)庫的文件位置并結(jié)合實(shí)例分析了類庫的調(diào)用方法,需要的朋友可以參考下2017-03-03laravel框架創(chuàng)建授權(quán)策略實(shí)例分析
這篇文章主要介紹了laravel框架創(chuàng)建授權(quán)策略,結(jié)合實(shí)例形式分析了laravel框架創(chuàng)建授權(quán)策略的相關(guān)步驟、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-11-11yii框架數(shù)據(jù)庫關(guān)聯(lián)查詢操作示例
這篇文章主要介紹了yii框架數(shù)據(jù)庫關(guān)聯(lián)查詢操作,結(jié)合實(shí)例形式總結(jié)分析了yii數(shù)據(jù)庫關(guān)聯(lián)查詢的常見操作方法與使用注意事項(xiàng),需要的朋友可以參考下2019-10-10php使用flock阻塞寫入文件和非阻塞寫入文件的實(shí)例講解
下面小編就為大家?guī)硪黄猵hp使用flock阻塞寫入文件和非阻塞寫入文件的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07淺談laravel中的關(guān)聯(lián)查詢with的問題
今天小編就為大家分享一篇淺談laravel中的關(guān)聯(lián)查詢with的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10