程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 將PHP程序中返回的JSON格式數據用gzip壓縮輸出的方法

將PHP程序中返回的JSON格式數據用gzip壓縮輸出的方法

編輯:PHP綜合

1.使用壓縮與不使用壓縮的HTTP輸出比較

201633154618959.jpg (447×226)

2.開啟gzip

利用apache mod_deflate module 開啟gzip
開啟方法:

sudo a2enmod deflate
sudo /etc/init.d/apache2 restart

關閉方法:

sudo a2dismod deflate
sudo /etc/init.d/apache2 restart

3.設置需要gzip壓縮輸出的類型

json的輸出類型是application/json,所以可以這樣設置
在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);
?>

設置gzip前輸出:

201633154714151.jpg (346×83)

設置gzip後輸出:

201633154732511.jpg (334×99)

4.單個json使用gzip壓縮輸出

設置AddOutputFilterByType DEFLATE application/json後,所有json格式的數據輸出都將使用gzip壓縮輸出。
如果只想某一個json使用gzip壓縮輸出,其他不需要,可以使用ob_start();方法來實現。

首先不需要設置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);
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved