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

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

編輯:關於PHP編程

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


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);
?>

您可能感興趣的文章:

  • jQuery通過Ajax向PHP服務端發送請求並返回JSON數據
  • php簡單實現查詢數據庫返回json數據
  • PHP實現返回JSON和XML的類分享
  • ThinkPHP通過AJAX返回JSON的兩種實現方法
  • php json_encode()函數返回json數據實例代碼
  • php返回json數據函數實例
  • PHP處理Json字符串解碼返回NULL的解決方法
  • ajax處理php返回json數據的實例代碼

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